3

只是浏览了最新版本的 PHP 编码标准,有一些东西引起了我的注意:

http://svn.php.net/viewvc/php/php-src/trunk/CODING_STANDARDS?revision=296679&view=markup

编码标准 #4 规定“在编写处理字符串的函数时,请务必记住 PHP 拥有每个字符串的长度属性,并且不应使用 strlen() 来计算...”

我一直使用 strlen,也许现在已经晚了,但是如何访问 PHP 中字符串的内置长度属性?

4

3 回答 3

10

他们在谈论C 函数,而不是 PHP 函数。C 函数将在第一个 之后停止计数\0,但 PHP 字符串可以包含\0结尾以外的其他位置。

于 2010-11-12T05:48:54.460 回答
1

很明显,他们谈论的是 PHP 编码标准,而不是 C 函数或 PHP 引擎的扩展。

=========================
PHP 编码标准
======================= =
该文件列出了任何程序员在 PHP 中添加或更改代码时应遵循的几个标准。由于此文件是在 PHP v3.0 开发的后期添加的,因此代码库(尚未)完全遵循它,但它正朝着那个大方向前进。由于我们现在已经进入第 4 版,因此许多部分已重新编码以使用这些规则。

我仍然没有找到关于字符串长度属性的任何相关信息,但我认为如果它与新版本的 PHP 相关,他们将来可能会发布这些信息。

如果有人发现有关此的有用信息,请发布。

于 2010-11-12T06:22:50.953 回答
0

要获取字符串 zval(C 中的变量)的长度,请使用 Z_STRLEN(your_zval),请参见第 398 行的 zend_operators.h (PHP 5.4):

#define Z_STRLEN(zval)          (zval).value.str.len
于 2012-04-02T17:58:51.510 回答