下面的列表是最常用的前 100 个 PHP 函数:它们是最常用的 PHP 中自带的函数。
这些函数被命名使用,并从 1 到 100 进行排序。 其他的 4500 个函数现在还没在排名中。 下面频率列表表示在 PHP 代码中使用此函数的频率:参考资料来自于 1900 个 PHP 开源项目。 他们使用了 Exakat static analysis engine 静态分析引擎的 1.2.5 版本进行了审核。平均值是在一个项目中调用此函数的次数。有些函数是被封装使用的,而另一些则是主要函数。
比如说,5 个项目里面有 4 个用到了 count 函数,函数被调用大概 150 次。说明它很流行且被大量使用。
单击函数名跳转到 PHP 文档。
排行 | 函数 | 频率 | 平均值 | 说明 | 用法 |
---|---|---|---|---|---|
1 | count | 81.41 % | 147.67 | 计算数组中的单元数目,或对象中的属性个数 | |
2 | is_array | 77.32 % | 117.86 | 检测变量是否是数组 | |
3 | substr | 74.62 % | 142.92 | 返回字符串 string 由 start 和 length 参数指定的子字符串。 | substr ( string $string , int $start [, int $length ] ) : string |
4 | in_array | 74.16 % | 79.55 | 检查数组中是否存在某个值 | in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool |
5 | explode | 73.19 % | 71.51 | 使用一个字符串$delimiter 分割另一个字符串 | explode ( string $delimiter , string $string [, int $limit ] ) : array |
6 | str_replace | 72.32 % | 101.05 | 子字符串替换 | str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed |
7 | implode | 72.27 % | 66.59 | 将一个一维数组的值转化为字符串 | implode ( string $glue , array $pieces ) : string |
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 | 返回数组中部分的或所有的键名:array | |
21 | dirname | 56.44 % | 54.84 | 返回路径中的目录部分 | |
22 | function_exists | 53.58 % | 42.62 | ||
23 | array_map | 53.22 % | 19.45 | 为数组的每个元素应用回调函数 | array_map ( callable $callback , array $array1 [, array $... ] ) : array |
24 | get_class | 53.12 % | 33.07 | ||
25 | class_exists | 52.50 % | 23.13 | ||
26 | is_object | 51.94 % | 35.35 | ||
27 | time | 51.79 % | 41.42 | 返回当前的 Unix 时间戳 (秒) | |
28 | json_encode | 51.48 % | 24.81 | ||
29 | date | 50.72 % | 52.18 | 格式化一个本地时间/日期 | date ( string $format [, int $timestamp ] ) : string |
30 | is_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 | 48.42 % | 17.39 | ||
36 | header | 48.16 % | 59.71 | 发送原生 HTTP 头 | |
37 | strtoupper | 47.80 % | 30.95 | ||
38 | array_values | 47.24 % | 17.27 | ||
39 | 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 | 43.77 % | 25.61 | 打开文件或者 URL | |
50 | microtime | 43.46 % | 14.41 | 返回当前 Unix 时间戳和微秒数 | |
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 | 从数组中取出一段 | array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) : array |
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 | 重复一个字符串 | str_repeat ( string $input , int $multiplier ) : string |
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 | 37.90 % | 9.61 | 解析 URL,返回其组成部分 | |
72 | func_get_args | 37.79 % | 28.33 | ||
73 | end | 37.49 % | 12.70 | 将数组的内部指针指向最后一个单元 | |
74 | base64_encode | 37.39 % | 14.15 | ||
75 | unserialize | 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 | 36.67 % | 14.87 | 对比两个「PHP 规范化」的版本数字字符串 | |
81 | array_push | 36.67 % | 26.18 | 将一个或多个单元压入数组的末尾(入栈) | 可以使用 $array[] = $var; 代替 |
82 | floor | 36.11 % | 18.78 | 舍去法(去尾法)取整 | |
83 | strtotime | 36.01 % | 27.94 | 将任何字符串的日期时间描述解析为 Unix 时间戳 | strtotime("+1 week") strtotime("next Thursday") |
84 | htmlspecialchars | 35.96 % | 51.08 | 将特殊字符转换为 HTML 实体 | |
85 | ini_get | 35.85 % | 19.25 | 获取一个配置选项的值 | |
86 | ini_set | 35.60 % | 14.49 | 为一个配置选项设置值 | |
87 | chr | 35.34 % | 186.97 | 返回指定的字符 | 此函数与 ord() 是互补的。 |
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 | 34.73 % | 53.17 | 转换字符串第一个字节为 0-255 之间的值 | |
93 | uniqid | 34.68 % | 9.83 | 生成一个唯一ID | |
94 | strtr | 34.47 % | 12.90 | 转换指定字符 | strtr ( string $str , string $from , string $to ) : string 该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。 比如, $from[$n]中每次的出现都会被替换为 $to[$n],其中 $n 是两个参数都有效的位移(offset)。 |
95 | array_diff | 34.32 % | 11.13 | ||
96 | error_reporting | 34.17 % | 8.99 | 设置应该报告何种 PHP 错误 | error_reporting(E_ALL); |
97 | ceil | 33.35 % | 11.99 | 进一法取整 | |
98 | urlencode | 33.30 % | 29.63 | ||
99 | min | 32.69 % | 18.31 | ||
100 | print_r | 32.64 % | 14.12 | 以易于理解的格式打印变量。 |
- 最常用的 PHP 函数是字符串函数,然后是数组函数,接着是文件函数。 (运算函数不在此列主要是因为他们通常基于运算符)
- 每个函数的链接都指向其对应的文档,事实上许多函数经过发展以及获得了许多新特性,例如:count() 的第二个参数,dirname() 的第二个参数以及 preg_match() 和 str_replace() 接受数组作为参数等。有很多彩蛋。
- 在非内置库中,mbstring 排名第一、curl 第二,然后是 gd、filter 和 iconv。
- md5 是最常用的加密函数,其次是 Sha1。
- print_r 出现在 1/3 的项目代码里面的某处,任何地方 ...
- 由于 dirname(dirname(dirname())) 的调用,dirname 的使用频率非常高。
- array、echo、print、empty、isset 这些没有纳入此排名,它们的使用度肯定是非常高的。
- 如下几个函数应该用运算符替代 : array_push, is_object, func_get_arg, chr, call_user_func。
- 相当多的调用是为了知道值的类型。
- 数据库函数没有在这里排名:他们经常使用类,但功能仍然很频繁。可能是另一个前 100 名?
- 相比写入文件 PHP 更多的应用于读取文件。它还解码 base64。
- 使用键排序比使用值或使用键更频繁。
- 通常使用 file_get_contents 读取文件,使用 fwrite 写入文件。