似乎没有真正的模式来命名函数,str_replace,strrpos,strip_tags,stripslashes只是一些。
为什么会这样?
发布于 2018-03-19 09:41:52
PHP语言有机地增长了一些,所以功能的命名是随意的。出于向后兼容性的原因,保留了许多不同的格式。
一个轻微的题外话,除了函数命名的问题之外,语言的有机增长的另一个不幸的副作用是参数排序中的明显不一致,例如考虑函数in_array和strstr:
bool in_array (mixed $needle, array $haystack [, bool $strict])
string strstr (string $haystack, mixed $needle [, bool $before_needle=false])
有趣的是,PHP似乎在内部与这些顺序保持一致,因为所有字符串函数似乎都使用,$haystack, $needle
而数组函数是另一种方式,但这可能需要一些适应PHP新手的习惯。从Zend Framework文档:
函数名称必须始终以小写字母开头。当函数名称由多个单词组成时,每个新单词的首字母必须大写。这通常被称为“camelCase”格式。 filterInput() getElementById()
发布于 2018-03-19 10:51:56
从历史上看,许多函数都是直接映射到C
对应的函数,所以PHP中很多命名和参数排序的怪异因素都是由此引起的。
PHP的贡献者通常会帮助该语言满足他们自己的需求,因此该语言有机地增长,有时也是不合规矩的。它的受欢迎程度也意味着它一直努力保持其整个生命周期的向后兼容性,这意味着即使在被弃用之后,关于该语言的糟糕决策依然存在。
https://stackoverflow.com/questions/-100001473
复制相似问题