count()和sizeof()都是用于计算数组元素个数的函数,实际上它们是相同的函数,sizeof()是count()的别名。在性能上两者没有区别。
empty()检查变量是否为空(空字符串、0、null、false、空数组都会返回true),而isset()检查变量是否已设置且不为null。
explode()用于将字符串按指定分隔符拆分成数组,implode()则是将数组元素连接成字符串。
strpos()返回子字符串首次出现的位置(数字索引),而strstr()返回从子字符串开始到原字符串结尾的部分。
array_merge()合并两个或多个数组,array_combine()则用一个数组的值作为键名,另一个数组的值作为键值创建新数组。
array_map()为数组的每个元素应用回调函数,例如:array_map('strtoupper', $array)将数组所有元素转为大写。
file_get_contents()将整个文件读入一个字符串,file()则将文件读入一个数组,每行一个元素。
可以使用以下函数组合:rmdir()、unlink()和递归函数,或者使用array_map('unlink', glob('$path/*.*'))后再删除空目录。
PHP5.3+支持闭包,使用function() use ($var){...}语法创建,常用于回调函数和临时函数定义。
可变函数是指通过变量值来调用函数,如$func = 'strtoupper'; $func('hello');,这相当于调用strtoupper('hello')。
isset()是语言结构而非函数,不需要函数调用的开销,且当键不存在时直接返回false而不发出警告。
对于小数组,in_array()足够;大数组应考虑将值转为键使用isset()检查,因为哈希查找比线性搜索快得多。
htmlspecialchars()只转换特殊HTML字符(&,<,>,',"),而htmlentities()会转换所有HTML实体字符。
应使用过滤函数如filter_var(),对输出使用htmlspecialchars(),SQL查询使用预处理语句(PDO/mysqli)。
time()返回当前Unix时间戳,strtotime()将英文文本日期时间描述解析为Unix时间戳。
可以使用DateTime类:$diff = $date1->diff($date2); echo $diff->days;
用于设置自定义错误处理函数:set_error_handler('myErrorHandler'),函数需接受4个参数。
trigger_error()生成用户级错误/警告/通知,而throw抛出可被try/catch捕获的异常。
uniqid()生成基于微秒的唯一ID,可配合更多熵源:uniqid('', true)。
serialize()生成PHP特定格式,可保存对象,json_encode()生成JSON格式,更通用但无法直接保存PHP对象。