首页 > 解决方案 > PHP - 为什么某些字符串函数名称不带下划线,例如 strlen?

问题描述

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

以下是示例

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

ETC..

带下划线的字符串函数

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

ETC..

我希望那些函数名应该是这样的

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

标签: phpstringfunctionstr-replacestrlen

解决方案


这些函数中的许多都以它们所遵循的 C 函数命名。这不是特定于字符串函数的;许多其他基本的 PHP 函数都是从 C 编程接口中复制而来的:printf(), fopen(), fnmatch()...</p>

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

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

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

顺便说一句,旧的 MySQL 扩展同样是 MySQL C API 的直接复制品,甚至包括mysql_real_escape_string().


推荐阅读