PHP-为什么有些不带下划线的字符串函数名称,例如strlen?

时间:2019-04-26 06:19:51

标签: php string function str-replace strlen

我注意到有些PHP字符串函数与下划线一起使用,而有些则不是

以下是示例

strlen()
strtolower()
strtoupper()
strpos()

等等。

带下划线的字符串函数

str_replace()
str_word_count()
str_split()
str_repeat()

等等。

我希望这些函数名应该像这样

str_len()
str_to_lower()
str_to_upper()
str_pos()

1 个答案:

答案 0 :(得分:1)

这些函数中的许多函数都是以C函数命名的,并以C函数命名。这不是专门针对字符串函数;从C编程接口复制了许多其他基本的PHP函数:printf()fopen()fnmatch()

strlen()是一个很好的例子。 C函数在功能上与PHP函数相同。

strpos()实际上没有出现在C标准库中,但是strstr()strchr()确实存在;命名模式非常清晰。 (strstr()strpos()之间的区别在C语言中不相关,因为返回指向子字符串的指针没有任何开销。)

C中也没有strtoupper()strtolower(),但是有一系列函数可将字符串转换为各种类型的数字(strtol()strtof()strtoull()等),可能启发了这些名称。

顺便说一句,旧的MySQL扩展类似地是MySQL C API的直接副本,甚至可以追溯到mysql_real_escape_string()之类的麻烦细节。