本文分享了国外网站统计的 PHP 代码中最常用的100个函数,该排名参考了 1900 个 PHP 开源项目。

排名中的平均值是在一个项目中调用此函数的次数。比如说,5 个项目里面有 4 个用到了 count 函数,函数被调用大概 150 次。

榜单

排行 函数 说明 频率 平均值
1 count 统计数组、Countable 对象中所有元素的数量 81.41 % 147.67
2 is_array 检测变量是否是数组 77.32 % 117.86
3 substr 返回字符串的子串 74.62 % 142.92
4 in_array 检查数组中是否存在某个值 74.16 % 79.55
5 explode 使用一个字符串分割另一个字符串 73.19 % 71.51
6 str_replace 子字符串替换 72.32 % 101.05
7 implode 用字符串连接数组元素 72.27 % 66.59
8 strlen 获取字符串长度 70.07 % 98.32
9 array_merge 合并一个或多个数组 69.46 % 64.01
10 strpos 查找字符串首次出现的位置 67.98 % 78.18
11 preg_match 执行匹配正则表达式 67.31 % 76.60
12 sprintf 返回格式化字符串 67.16 % 119.46
13 trim 去除字符串首尾处的空白字符(或者其他字符) 66.75 % 81.28
14 strtolower 将字符串转化为小写 65.99 % 59.62
15 file_exists 检查文件或目录是否存在 65.12 % 45.13
16 is_string 检测变量是否是字符串 61.39 % 45.10
17 preg_replace 执行一个正则表达式的搜索和替换 60.27 % 54.28
18 file_get_contents 将整个文件读入一个字符串 59.96 % 20.71
19 array_key_exists 检查数组里是否有指定的键名或索引 59.70 % 57.50
20 array_keys 返回数组中部分的或所有的键名 59.35 % 39.59
21 dirname 返回路径中的目录部分 56.44 % 54.84
22 function_exists 检查函数是否已定义 53.58 % 42.62
23 array_map 为数组的每个元素应用回调函数 53.22 % 19.45
24 get_class 返回对象的类名 53.12 % 33.07
25 class_exists 检查类是否已定义 52.50 % 23.13
26 is_object 检测变量是否是一个对象 51.94 % 35.35
27 time 返回当前的 Unix 时间戳 51.79 % 41.42
28 json_encode 对变量进行 JSON 编码 51.48 % 24.81
29 date 格式化一个本地时间/日期 50.72 % 52.18
30 is_null 检测变量是否为 null 49.69 % 60.52
31 is_numeric 检测变量是否为数字或数字字符串 49.49 % 40.69
32 array_shift 将数组开头的单元移出数组 49.49 % 23.28
33 defined 检查某个名称的常量是否存在 48.72 % 86.82
34 is_dir 判断给定文件名是否是一个目录 48.57 % 22.86
35 json_decode 对 JSON 格式的字符串进行解码 48.42 % 17.39
36 header 发送原生 HTTP 头 48.16 % 59.71
37 strtoupper 将字符串转化为大写 47.80 % 30.95
38 array_values 返回数组中所有的值 47.24 % 17.27
39 md5 计算字符串的 MD5 散列值 46.88 % 23.74
40 method_exists 检查类的方法是否存在 46.73 % 19.05
41 file_put_contents 将一个字符串写入文件 46.68 % 12.49
42 rtrim 删除字符串末端的空白字符(或者其他字符) 45.91 % 18.08
43 array_pop 弹出数组最后一个单元(出栈) 45.51 % 20.60
44 unlink 删除文件 44.59 % 23.55
45 basename 返回路径中的文件名部分 44.59 % 27.23
46 realpath 返回规范化的绝对路径名 44.08 % 15.90
47 call_user_func 把第一个参数作为回调函数调用 43.97 % 16.41
48 call_user_func_array 调用回调函数,并把一个数组参数作为回调函数的参数 43.92 % 18.40
49 fopen 打开文件或者 URL 43.77 % 25.61
50 microtime 返回当前 Unix 时间戳和微秒数 43.46 % 14.41
51 fclose 关闭一个已打开的文件指针 42.85 % 28.36
52 is_int 检测变量是否是整数 42.75 % 15.78
53 is_file 判断给定文件名是否为一个正常的文件 42.08 % 20.52
54 array_slice 从数组中取出一段 41.83 % 13.20
55 preg_match_all 执行一个全局正则表达式匹配 40.55 % 14.66
56 ucfirst  将字符串的首字母转换为大写 40.25 % 17.02
57 intval 获取变量的整数值 40.19 % 88.13
58 str_repeat 重复一个字符串 40.14 % 19.51
59 serialize 产生一个可存储的值的表示 40.14 % 22.05
60 array_filter 使用回调函数过滤数组的元素 39.99 % 13.87
61 mkdir 新建目录 39.79 % 11.17
62 is_callable 检测参数是否为合法的可调用结构 39.43 % 11.94
63 ltrim 删除字符串开头的空白字符(或其他字符) 39.17 % 10.90
64 ob_start 打开输出控制缓冲 39.12 % 13.26
65 round 对浮点数进行四舍五入 39.07 % 28.56
66 fwrite 写入文件(可安全用于二进制文件) 38.97 % 23.39
67 array_unique 移除数组中重复的值 38.87 % 15.96
68 array_search 在数组中搜索给定的值,如果成功则返回首个相应的
键名
38.82 % 14.19
69 reset 将数组的内部指针指向第一个单元 38.71 % 20.79
70 array_unshift 在数组开头插入一个或多个单元 38.10 % 10.32
71 parse_url 解析 URL,返回其组成部分 37.90 % 9.61
72 func_get_args 返回一个包含函数参数列表的数组 37.79 % 28.33
73 end 将数组的内部指针指向最后一个单元 37.49 % 12.70
74 base64_encode 使用 MIME base64 对数据进行编码 37.39 % 14.15
75 unserialize 从已存储的表示中创建 PHP 的值 37.18 % 18.35
76 max 找出最大值 36.98 % 22.88
77 preg_split 通过一个正则表达式分隔字符串 36.98 % 13.27
78 gettype 获取变量的类型 36.93 % 16.16
79 strrpos 计算指定字符串在目标字符串中最后一次出现的位置 36.67 % 11.95
80 version_compare 对比两个「PHP 规范化」的版本数字字符串 36.67 % 14.87
81 array_push 将一个或多个单元压入数组的末尾(入栈) 36.67 % 26.18
82 floor 舍去法取整 36.11 % 18.78
83 strtotime 将任何字符串的日期时间描述解析为 Unix 时间戳 36.01 % 27.94
84 htmlspecialchars 将特殊字符转换为 HTML 实体 35.96 % 51.08
85 ini_get 获取一个配置选项的值 35.85 % 19.25
86 ini_set 为一个配置选项设置值 35.60 % 14.49
87 chr 返回指定的字符 35.34 % 186.97
88 extension_loaded 检查一个扩展是否已经加载 35.29 % 14.17
89 is_bool 检测变量是否是布尔值 35.24 % 11.44
90 ksort 对数组根据键名升序排序 34.98 % 10.82
91 array_reverse 返回单元顺序相反的数组 34.93 % 8.27
92 ord 转换字符串第一个字节为 0-255 之间的值 34.73 % 53.17
93 uniqid 生成一个唯一ID 34.68 % 9.83
94 strtr 转换指定字符 34.47 % 12.90
95 array_diff 计算数组的差集 34.32 % 11.13
96 error_reporting 设置应该报告何种 PHP 错误 34.17 % 8.99
97 ceil 进一法取整 33.35 % 11.99
98 urlencode 编码 URL 字符串 33.30 % 29.63
99 min 找出最小值 32.69 % 18.31
100 print_r 以易于理解的格式打印变量。 32.64 % 14.12

分析

  • 最常用的 PHP 函数是字符串函数,然后是数组函数,接着是文件函数。 (运算函数不在此列主要是因为他们通常基于运算符)
  • 每个函数的链接都指向其对应的文档,事实上许多函数经过发展以及获得了许多新特性,例如:count() 的第二个参数,dirname()的第二个参数以及 preg_match() 和 str_replace() 接受数组作为参数等。
  • 以上 100 个函数没有近期要废弃的计划。
  • 在非内置库中,mbstring 排名第一、curl 第二,然后是 gd、filter 和 iconv
  • md5 是最常用的加密函数,其次是 Sha1,不过目前由于这两个函数依赖的算法已不足够复杂,不推荐用来对明文密码加密。
  • print_r 出现在 1/3 的项目代码里面的某处 …
  • 由于 dirname(dirname(dirname())) 的调用,dirname 的使用频率非常高。
  • array、echo、print、empty、isset 这些没有纳入此排名,它们的使用度肯定是非常高的。
  • 如下几个函数应该用运算符替代 : array_pushis_objectfunc_get_argchr,
    call_user_func
  • 相当多的调用是为了知道值的类型。
  • 数据库函数没有在这里排名:他们经常使用类,但功能仍然很频繁。
  • PHP代码倾向于读取文件而不是写入文件。
  • 使用键排序比使用值或使用键更频繁。
  • 通常使用 file_get_contents 读取文件, 使用 fwrite 写入文件。