只是浏览PHP编码标准的最新版本,有些东西引起了我的注意:
http://svn.php.net/viewvc/php/php-src/trunk/CODING_STANDARDS?revision=296679&view=markup
编码标准#4指出“在编写处理字符串的函数时,请务必记住PHP保存每个字符串的长度属性,并且不应使用strlen()计算...”
我总是使用strlen,也许它已经晚了,但是如何在PHP中访问字符串的内置长度属性?
答案 0 :(得分:10)
他们在讨论C function,而不是PHP函数。 C函数将在第一个\0
之后停止计数,但PHP字符串可以在除结尾之外的其他地方包含\0
。
答案 1 :(得分:1)
有人明确提到他们谈论的是PHP编码标准,而不是关于C函数或PHP引擎的扩展。
========================
PHP编码标准
============ ============
此文件列出了任何程序员添加或更改的几个标准 PHP中的代码应该遵循。由于这个文件是在很晚才添加的 在PHP v3.0的开发阶段,代码库还没有(还)完全 跟着它,但它正朝着那个方向发展。既然我们现在 在版本4发布之后,许多部分都被重新编码使用 这些规则。
我仍未找到有关字符串长度属性的任何相关信息,但我认为将来如果它与PHP的新版本相关,它们可能会发布信息。
如果有人找到有关此信息的有用信息,请发帖。
答案 2 :(得分:0)
要获取字符串zval的长度(C中的变量),请使用Z_STRLEN(your_zval) 请参阅第398行(PHP 5.4)中的zend_operators.h:
#define Z_STRLEN(zval) (zval).value.str.len