目录
常用函数
1)有关输出的函数
print():类似于echo输出提供的内容,本质是一种结构(不是函数),返回1,可以不需要使用括号
print_r():类似于var_dump,但是比var_dump简单,不会输出数据的类型,只会输出值(数组打印使用比较多)
2)有关时间的函数
date():按照指定格式对对应的时间戳(从1970年格林威治时间开始计算的秒数),如果没有指定特定的时间戳,那么就是默认解释当前时间戳
3)有关数学的函数
max():指定参数中最大的值
min():比较两个数中较小的值
rand():得到一个随机数,指定区间的随机整数
mt_rand():与rand一样,只是底层结构不一样,效率比rand高(建议使用)
round():四舍五入
ceil():向上取整
floor():向下取整
pow():求指定数字的指定指数次结果:pow(2,8) == 2^8 == 256
abs():绝对值
sqrt():求平方根
time():获取当前时间对应的时间戳
microtime():获取微秒级别的时间
Strtotime():按照规定格式的字符串转换成时间戳
4)有关函数的函数
function_exists():判断指定的函数名字是否在内存中存在(帮助用户不去使用一个不存在的函数,让代码安全性更高)
func_get_arg():在自定义函数中去获取指定数值对应的参数
func_get_args():在自定义函数中获取所有的参数(数组)
func_num_args():获取当前自定义函数的参数数量
错误
所有看到的错误代号在PHP中都被定义成了系统常量(可以直接使用)
1)系统错误:
E_PARSE:编译错误,代码不会执行
E_ERROR:fatal error,致命错误,会导致代码不能正确继续执行(出错的位置断掉)
E_WARNING:warning,警告错误,不会影响代码执行,但是可能得到意想不到的结果
E_NOTICE:notice,通知错误,不会影响代码执行
2)用户错误:E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE
用户在使用自定义错误触发的时候,会使用到的错误代号(系统不会用到)
3)其他:E_ALL,代表着所有从错误(通常在进行错误控制的时候使用比较多),建议在开发过程中(开发环境)使用
所有以E开头的错误常量(代号)其实都是由一个字节存储,然后每一种错误占据一个对应的位,如果想进行一些错误的控制,可以使用位运算进行操作
排除通知级别notice:E_ALL & ~E_NOTICE
只要警告和通知:E_WARNING | E_NOTICE
字符串类型
1.字符串的三个定义方式
1单引号
$s='qkr'
2双引号
$s="qkr"
3定界符
$s=<<<EOD
qkr
EOD;
1.字符串中的单引号与双引号的区别:
1解析转义字符的能力
单引号:不能解析转义字符,只能解析转斜线()和自己本身
双引号:可以解析转义字符
2解析变量的能力:
单引号:单引号不解析变量,可以使用字符串的连接变量使用。
双引号:解析变量,但在双引号解析变量需要将变量使用{}括起来,告诉字符串以变量 解析
3对单双引号的支持(引号之间的互相嵌套):
单引号可以包含双引号,如果包含单引号须使用转义斜线来进行转译
双引号可以包含双引号,如果包含双引号须使用转义斜线来进行转译
使用选择:
1能用单引号就用单引号(功能少,效率高)
2SQL一般使用双引号
3大文本或数据使用定界符
字符串相关函数
1)转换函数:implode(), explode(), str_split()
Implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串
Explode(分割字符,目标字符串):将字符串按照某个格式进行分割,变成数组
中国|北京|顺义 == array(‘中国’,‘北京’,’顺义’);
Str_split(字符串,字符长度):按照指定长度拆分字符串得到数组
2)截取函数:trim(), ltrim(), rtrim()
Trim(字符串[,指定字符]):本身默认是用来去除字符串两边的空格(中间不行),但是也可以指定要去除的内容,是按照指定的内容循环去除两边有的内容:直到碰到一个不是目标字符为止
Ltrim():去除左边的
Rtrim():去除右边的
3)截取函数:substr(), strstr()
Substr(字符串,起始位置从0开始[,长度]):指定位置开始截取字符串,可以截取指定长度(不指定到最后)
Strstr(字符串,匹配字符):从指定位置开始,截取到最后(可以用来去文件后缀名)
4)大小转换函数:strtolower(), strtoupper(), ucfirst()
Strtolower:全部小写
Strtoupper:全部大写
Ucfirst:首字母大写
5)查找函数:strpos(), strrpos()
Strpos(字符串,匹配字符):判断字符在目标字符串中出现的位置(首次)
Strrpos(字符串,匹配字符):判断字符在目标字符串中最后出现的位置
6)替换函数:str_replace()
Str_replace(匹配目标,替换的内容,字符串本身):将目标字符串中部分字符串进行替换
7)格式化函数:printf(), sprintf()
Printf/sprintf(输出字符串有占位符,顺序占位内容..):格式化输出数据
8)其他:str_repeat(), str_shuffle()
Str_repeat():重复某个字符串N次
Str_shuffle():随机打乱字符串
数组
定义
1、 使用array关键字:最常用的
$变量 = array(元素1,元素2,元素3..);
2、 可以使用中括号来包裹数据:
$变量 = [元素1,元素2…];
3、 隐形定义数组:给变量增加一个中括号,系统自动变成数组
$变量[] = 值1; //如果不提供下标也可以,系统自动生成(数字:从0开始)
$变量[下标] = 值; //中括号里面的内容称之为下标key,该下标可以是字母(单词)或者数字,与变量命名的规则相似
PHP数组特点
1) 可以整数下标或者字符串下标
如果数组下标都为整数:索引数组
如果数组下标都为字符串:关联数组
2) 不同下标可以混合存在:混合数组
3) 数组元素的顺序以放入顺序为准,跟下标无关
PHP数组特点
1) 可以整数下标或者字符串下标
如果数组下标都为整数:索引数组
如果数组下标都为字符串:关联数组
2) 不同下标可以混合存在:混合数组
3) 数组元素的顺序以放入顺序为准,跟下标无关
4) 数字下标的自增长特性:从0开始自动增长,如果中间手动出现较大的,那么后面的自增长元素从最大的值+1开始
5) 特殊值下标的自动转换
布尔值:true和false
空:NULL
6) PHP中数组元素没有类型限制
7) PHP中数组元素没有长度限制
补充:PHP中的数组是很大的数据,所以存储位置是堆区,为当前数组分配一块连续的内存。
数组遍历
Foreach遍历语法
基本语法如下:
Foreach($数组变量 as [$下标 =>] $值){
//通过$下标访问元素的下标;通过$值访问元素的值
}
通常:如果是关联数组(字母下标),就需要下标,如果是数字下标就直接访问值
Foreach遍历原理
Foreach遍历的原理:本质是数组的内部有一颗指针,默认是指向数组元素的第一个元素,foreach就是利用指针去获取数据,同时移动指针。
Foreach($arr as $k => $v){
//循环体
}
1、 foreach会重置指针:让指针指向第一个元素;
2、 进入foreach循环:通过指针取得当前第一个元素,然后将下标取出放到对应的下标变量$k中(如果存在),将值取出来放到对应的值变量$v中;(指针下移)
3、 进入到循环内部(循环体),开始执行;
4、 重复2和3,直到在2的时候遇到指针取不到内容(指针指向数组最后)
数组的相关函数
1)排序函数:对数组元素进行排序,都是按照ASCII码进行比较,可以进行英文比较
sort():顺序排序(下标重排)
rsort():逆序排序
asort():顺序排序(下标保留)
arsort():逆序排序
ksort():顺序排序:按照键名(下标)
krsort():逆序排序
shuffle():随机打乱数组元素,数组下标会重排
2)指针函数
reset():重置指针,将数组指针回到首位
end():重置指针,将数组指针指导最后一个元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
current():获取当前指针对应的元素值
key():获取当前指针对应的下标值
3)其他函数
count():统计数组中元素的数量
array_push():往数组中加入一个元素(数组后面)
array_pop():从数组中取出一个元素(数组后面)
array_shift():从数组中取出一个元素(数组前面)
array_unshift():从数组中加入一个元素(数组前面)
PHP模拟数据结构:
栈:压栈,先进去后出来(FILO)
队列:排队,先进去的先出去(FIFO)
array_reverse():数组元素反过来
in_array():判断一个元素在数组中是否存在
array_keys():获取一个数组的所有下标,返回一个索引数组
array_values():获取一个数组的所有值,返回一个索引数组