php - 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()
解决方案
这些函数中的许多都以它们所遵循的 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()
.
推荐阅读
- css - Github 页面未链接到 CSS
- reactjs - React JS:创建一个读取道具并传递给渲染的函数
- shiny - 在闪亮时自动调整ggplotly的高度
- reactjs - 离子选择器组件中的 onChange 钩子?
- qt - QTCPSocket 只能连接到两个网络之一?
- php - 在 Silverstripe 4 中将 Uploadfield 设置为覆盖
- javascript - 为什么这个函数在使用 include 方法时会抛出错误?
- regex - 用正则表达式函数返回值替换 DataFrame 中的值
- java - (Mac) jshell 找不到运行环境
- c# - 当两者都实现相同的接口时,将对象转换为另一个类的对象