gt;> 参数顺序: array_filter($input, $callback) versus array_map($callback, $input), strpos($haystack, $needle) versus array_search($needle, $haystack)>> 前缀混乱: usleep vs microtime>> Case insensitive functions vary on where the i goes in the name.>> 大概一半的数组函数以 array_ 开头. 剩下的不是.>> 厨房水槽. 库包括:>> 绑定 ImageMagick, 绑定 GraphicsMagick (ImageMagick的派生), 少量的几个函数能检测 EXIF 数据 (其中ImageMagick已经可以做到)>> 解析 bbcode 的函数, 一些非常特殊的标记, 被几个少量的论坛包使用.>> 太多 XML 包. DOM (OO), DOM XML (not), libxml, SimpleXML, “XML Parser”, XMLReader/XMLWriter, 和一大砣我不能认出的东西就省略了. 当然会有些不同, 你可以自由的弄清晰它们的区别.>> 绑定了两个特别的信用卡处理器, SPPLUS 和 MCVE. 什么?>> 三种访问 MySQL 数据库的方式: mysql, mysqli, 和 PDO 抽象的一些东西.C 影响它需要拥有的自己的符号. PHP 是个高层的, 动态类型的语言. 然后大量的标准库的部分仍然只是围绕 C APIS 的薄层封装, 伴随着下面的东西:>> "Out" 参数, 尽管 PHP 可以返回 ad-hoc 哈希或毫不费力的返回多参数.>> 至少一打的函数是为了获取某子系统的最近一次错误(见下文), 尽管 PHP 已存存异常处理功能8年了.>> 有个 mysql_real_escape_string, 尽管已有个具有相同参数的 mysql_escape_string, 仅仅因为它是 MySQL C API 的一部分.>> 全局行为却是非全局功能的(如 MySQL). 使用多个 MySQL 连接需要显示的对每个函数调用传递连接句柄.>> 包装器真的, 真的, 真的很薄. 例如, 调用了 dba_nextkey 而没调用 dba_firstkey 將出现段错误.>> 有一堆的 ctype_* 函数 (如 ctype_alnum) 映射类似名称的 C 字符函数, 而不是如, isupper.Genericism如果函数相做两件略有不同的事, PHP 就搞出两个函数.你怎样反向排序? 在 Perl 中, 你可以用 { $b <=> $a}. 在 Python 中, 你可能用 .sort(reverse = True). 在 PHP 中, 有个特别的函数叫 rsort().>> 那些看起来像 C error 的函数: curl_error, json_last_error, openssl_error_string, imap_errors, mysql_error, xml_get_error_code, bzerror, date_get_last_errors, 还有其它的吗?>> 排序函数: array_multisort, arsort, asort, ksort, krsort, natsort, natcasesort, sort, rsort, uasort, uksort, usort>> 文本检索函数: ereg, eregi, mb_ereg, mb_eregi, preg_match, strstr, strchr, stristr, strrchr, strpos, stripos, strrpos, strripos, mb_strpos, mb_strrpos, plus the variations that do replacements>> 有大量的别名: strstr/strchr, is_int/is_integer/is_long, is_float/is_double, pos/current, sizeof/count, chop/rtrim, implode/join, die/exit, trigger_error/user_error…>> scandir 返回一个当前给出目录的文件列表. 而不是(可能有益)按返回目录顺序返回, 函数返回一个已排序的文件列表. 有个可选的参数可以按字母逆顺返回. 这些用于排序很显然很不够.>> str_split 將字符串拆成等长的块. chunk_split 將字符串拆成等长的块, 然后用个分隔符连接.>> 读取压缩文件需要一套单独的函数, 取决于格式. 有六套函数, 它们的 API 都不同, 如 bzip2, LZF, phar, rar, zip, 和gzip/zlib>> 因为使用参数数组调用函数是如此的别扭(call_user_func_array), 所以有些配套的像 printf/vprintf 和 sprintf/vsprintf. 它们做相同