原始数据类型(9种)
基本数据类型:
整形(integer)、浮点型(float)、字符串(string)、布尔型(boolean)
复合数据类型:
数组(array)、对象(object)、callable(可调用)
特殊数据类型:
资源类型(resource) 和 NULL
变量相关处理函数
is_bool($var)
判断是否为布尔型is_int($var)
判断是否为整型is_float($var)
判断是否为浮点型is_numeric($var)
判断是否为数值或数值字符串is_string($var)
判断是否为字符串is_array($var)
判断是否为数组is_object($var)
判断是否为对象is_resource($var)
判断是否为资源类型is_null($var)
判断是否为NULLgettype($var)
获取变量的类型
empty($var)
判断是否为空isset($var)
判断是否存在unset($var)
删除变量
intval($var)
强制转换为整型floatval($var)
强制转换为浮点型boolval($var)
强制转换为布尔型strval($var)
强制转换为字符串(int)$var
强转为整型(bool)$var
强转为布尔值(float)$var
强转为浮点型(string)$var
强转为字符串(array)$var
强转为数组(object)$var
强转为对象(unset)$var
强转为NULL
print_r($var)
打印数组var_dump($var)
打印变量详细信息var_export($var)
返回格式化的php代码(不执行),例如var_export($arr)
serialize($var)
变量序列化为字符串unserialize($var)
反序列化
字符串相关处理函数
addslashes()
对字符串内的单双引号,反斜杠,NULL前面加\
进行转义htmlspecialchars()
可转义< > ' " &
,默认未开启转义单引号strip_tags()
去除字符串中的html和php标签md5()
将字符串进行md5加密sha1()
返回SHA-1散列,默认生成40字符十六进制数uniqid(前缀,如果是true则为23字符)
根据系统微妙数生成唯一id,但是并不是很保险,推荐用下面的md5(uniqid(mt_rand(), true))
nl2br()
将字符串中的\n
转换为<br>
trim()
移除两边空白符,可以使用第二个参数指定移除某个字符串ltrim()
移除左边空白符,可以使用第二个参数指定移除某个字符串rtrim()
移除右边空白符,可以使用第二个参数指定移除某个字符串
chr()
根据ASCII码返回对应字符ord()
根据字符返回对应ASCII码
count_chars($str,1)
统计字符串中每个字符的出现的次数,返回数组strlen()
返回字符串的长度str_word_count()
统计字符串中的单词数量substr_count('hello 666 hello', 'hello')
统计字符串中子串的数量
echo
是一个语法结构print
是一个语法结构
str_split('abcdefg')
将字符串每个字符拆分为索引数组,第二个参数可以指定每个的长度array([0] => 'a', [1]=>'b' ...)explode(',', $str)
将字符串根据指定字符拆分为数组implode(',', $arr)
将数组用指定字符连接接为字符串,同join
strtolower()
字符串转为全小写strtoupper()
字符串转为全大写ucfirst()
首字母大写lcfirst()
首字母小写ucwords()
每个单词首字母大写
strchr('hello world hello world', 'world')
截取字符串第一次出现world到字符串结尾的部分,等同于strstrstristr()
匹配时不区分大小写strrchr()
匹配最后一次到结尾substr($str, start, length)
字符串截取
strpos('hello world', 'world')
返回world在字符串中第一次出现的位置strrpos()
匹配最后一次出现的位置stripos()
匹配时不区分大小写
str_replace('word', 'world', 'hello word')
字符串替换str_ireplace()
不区分大小写替换
str_repeat('我6', 3)
字符串重复str_shuffle()
随机打乱字符串中的字符strrev()
字符串反转
数组相关处理函数
array()
创建数组
array_keys()
返回所有键名array_values()
返回所有的值array_column($arr, 'name')
返回数组中某一列的值,第三个参数为指定某一列作为键名array_rand($arr, 1)
随机返回数组中一个或多个键名
合并与拆分
array_merge()
将多个数组合并为一个数组,如果是索引数组则第二个追加到第一个前面,如果是关联数组则相同键名的后面覆盖前面array_replace()
和array_merge区别:处理索引数组时也会合并而不是追加,处理关联数组基本一样array_replace_recursive($a1,$a2)
递归用后面数组的值替换前面数组的值array_chunk($arr, 2)
将数组分割为指定数目的子数组
统计
array_count_values()
统计数组中每个值出现的次数
比较
array_diff($arr1,$arr2,$arr3)
返回多个数组的差集,只比较键值array_diff_key($arr1,$arr2,$arr3)
返回多个数组的差集,只比较键名array_diff_assoc($arr1,$arr2,$arr3)
返回多个数组的差集,比较键名和键值**`array_intersect()返回多个数组的交集,只比较键值
array_intersect_key($arr1,$arr2,$arr3)
返回多个数组的交集,只比较键名array_intersect_assoc($arr1,$arr2,$arr3)
返回多个数组的交集,比较键名和键值
操作:
array_flip()
数组键值对调array_reverse()
数组数据顺序颠倒array_pop()
删除数组最后一个元素array_shift()
删除数组的第一个元素array_unshift($arr,"blue","yellow")
向数组开头新增一个或多个元素array_push($arr,"blue","yellow")
数组末尾追加一个或多个值,返回数组长度array_slice($arr, start, length)
数组截取array_sum()
数组数据求和array_unique()
数组去重shuffle()
打乱数组count()
数组长度list()
将数组中的值依次赋值给变量range('a','z')
生成指定范围的数组
是否存在:
array_key_exists("name",$arr)
检查某个键名是否存在in_array('fsm', $arr)
检查某个值是否存在,第三个参数如果为true,则同时校验类型
搜索:
array_search("red",$arr)
根据值返回键名key($arr)
获取数组当前的键名current($arr)
获取数组当前的值
排序:
按照值:
sort()
升序rsort()
降序asort()
索引数组升序arsort()
索引数组降序
按照键:
ksort()
按键升序krsort()
按键降序
日期时间相关处理函数
设置时区
php.ini date.timezone = PRC
date_default_timezone_set("PRC");
// Asia/Shanghaiini_set('date.timezone', 'Asia/Shanghai');
time()
返回当前时间戳date('Y-m-d H:i:s')
格式化本地的时间或者日期,(y-n-j不带前导零 w星期几 z一年中第几天 t月总天数 L是否闰年 a:am或pm)getdate()
根据时间戳返回日期时间信息数组strtotime()
将英文时间字符串解析为时间戳(2018-11-27 11:05:23, now, +1 week 2 days 4 hours 2 seconds, next Thursday, last Monday)mktime(hour, minute, second, month, day, year)
取得一个日期的时间戳microtime()
返回当前时间戳和微秒数0.50091600 1543288331gettimeofday(true)
取得当前时间戳和和前三位或四位微秒1543289052.4254checkdate(month, day, year)
验证日期合法性(月日年为必填)
目录和文件相关处理函数
getcwd()
返回当前文件所在目录的绝对路径scandir()
数组形式返回目录中的所有子目录和子文件
basename()
返回路径中的文件名部分dirname()
返回路径中的目录部分pathinfo()
数组形式返回文件的信息
mkdir()
创建目录copy(a, b)
复制文件rename(oldname, newname)
重命名文件或文件夹unlink()
删除文件rmdir()
删除空目录move_uploaded_file(file,newloc)
将上传的文件移动到新位置
file_exists()
检查文件或目录是否存在file_get_contents()
将文件读入一个字符串file_put_contents(filename, data)
将字符串写入一个文件
filesize()
返回文件的大小filetype()
返回文件的类型
is_file()
判断是否为普通文件is_link()
判断是否为链接文件
URL相关处理函数
urlencode()
url编码urldecode()
url解码
base64_encode()
base64编码base64_decode()
base64反编码
http_build_query($arr)
将数组编码成url参数字符串parse_str("name=Bill&age=60", $arr)
将url参数字符串解析保存为数组
parse_url('http://php.net/manual/en/function.parse-url.php?name=12234456&time=baga')
将url地址信息解析为数组,数组中的query可以作为parse_str的参数
数学相关处理函数
abs()
绝对值ceil()
向上取整floor()
向下取整fmod()
返回除法浮点数余数max()
最大值min()
最小值pi()
圆周率pow(x,y)
x的y次方sqrt()
平方根round()
四舍五入rand(low, high)
返回随机整数is_nan()
判断是否为 非数值
魔术常量(预定义常量)
__FILE__
返回文件的完整路径和文件名(绝对路径),如果用在被包含的文件中,则返回被包含的文件名__DIR__
返回文件所在目录,等价于dirname(__FILE__)__NAMESPACE__
返回当前命名空间__CLASS__
返回当前类名__METHOD__
返回当前方法名__FUNCTION__
返回当前函数名
魔术方法
__construct()
实例化类时自动调用。__destruct()
类对象使用结束时自动调用。__set()
在给未定义的属性赋值的时候调用。__get()
调用未定义的属性时候调用。__isset()
使用isset()或empty()函数时候会调用。__unset()
使用unset()时候会调用。__clone()
当使用clone复制一个对象时候调用。
超全局变量(预定义变量)
$_SERVER
服务器和执行环境信息$_GET
get方式传递的数据$_POST
post方式传递的数据$_FILES
http文件上传信息$_COOKIE
http cookies$_SESSION
session变量$_REQUEST
默认包含get post cookies$GLOBALS
全局变量
其他函数
function_exists()
检查函数是否存在class_exists()
检查类是否存在method_exists(obj, method_name)
检查方法是否存在
header()
发送HTTP报头(Location:)
define()
定义一个常量defined()
检查一个常量是否存在
die() exit()
输出消息并退出脚本sleep()
程序延迟执行若干秒usleep()
程序延迟执行若干微秒