|
本文是 http://tnx.nl/php - 假如你要复制他,请保持这个链接。
翻译:ShiningRay @ Nirvana Studio 目录
* 参数和返回值极其矛盾 * PHP对大小写不敏感的操作使用不同的函数 * PHP的函数命名方式的不一致 * PHP没有词法范围 * PHP的主名空间中函数太多 * PHP缺少抽象令 TIMTOWTDI 走向糟糕的极端 * 更多信息
参数和返回值极其矛盾
要展示这个问题,下面有一个函数列表,里面的函数用来匹配用户定义的内容:(也许甚至那些用PHP的人才会使用这个文档,只是用来查看该用哪个函数:P) 匹配 替换使用 大小写不敏感 返回的数字 数组参数 返回匹配 s/m/x标志 偏移(-1=结尾) ereg ereg 否 所有 否 数组 无 0 ereg_replace ereg 字符串 否 所有 否 无 无 0 eregi ereg 否 所有 否 数组 无 0 eregi_replace ereg 字符串 否 所有 否 无 无 0 mb_ereg ereg[1] 否 所有 否 数组 无 0 mb_ereg_replace ereg[1] 字符串/表达式 否 所有 否 无 有 0 mb_eregi ereg[1] 否 所有 否 数组 无 0 mb_eregi_replace ereg[1] 字符串 否 所有 否 无 无 0 preg_match preg[2] 皆可 一个 否 数组 有 0 preg_match_all preg 皆可 所有 否 数组 有 0 preg_replace preg 字符串/表达式 皆可 无/所有 是 无 有 0 str_replace str 字符串 否 所有 是 数字 无 0 str_ireplace str 字符串 是 所有 是 数字 无 0 strstr, strchr str 否 一个 否 子串 无 0 stristr str 是 一个 否 子串 无 0 strrchr str 否 一个 否 子串 无 -1 strpos str 否 一个 否 索引 无 n stripos str 是 一个 否 索引 无 n strrpos char[3] 否 一个 否 索引 无 n strripos str 是 一个 否 索引 无 -1 mb_strpos str[1] 否 一个 否 索引 无 n mb_strrpos str[1] 否 一个 否 索引 无 -1
这种问题还存在在其他的函数组里,不仅仅是匹配的这部分而已。
(在Perl中,所有这些功能都可以通过四个简单的操作符来完成。)
[1] 用于处理多字节字符 [2] PCRE regex: 所谓的“Perl兼容”的正则表达式。 [3] 在PHP5中也是字符串str PHP对大小写不敏感的操作使用不同的函数
(这个可能会有两方面的争论。有些人认为提供不同的函数更好,即使这意味着又要记很多名词了)
在Perl中,你可以使用两个lc() 或者是 /i 标志,而PHP通常会提供一个大小写敏感的变量。而且,大小写不敏感的那些版本的函数名的命名方式也不一致。
|
| 共5页: 上一页 1 [2] [3] [4] [5] 下一页 |
评论加载中…