来自文档-
int strlen ( string $string )
它以字符串作为参数,现在当我这样做时-
$a = array('tex','ben');
echo strlen($a);
输出 -
5
然而我期待的是,两种类型的输出-
如果它是一个数组,php 可能会把它转换成字符串,这样数组就会变成-
'texben'
所以它可能输出 -6
如果第一个不是它会像这样转换它 -
"array('tex','ben')"
所以预期的输出应该是 -18
(所有项目的计数)
但是每次它输出- 5
我对输出的考虑是 array
字数的 5
但我不确定。如果是这种情况,PHP 是如何做到这一点的?(意味着数 5)
最佳答案
该函数将输入转换为字符串,因此数组变为 Array
,这就是计数为 5 的原因。
这和做是一样的:
$a = array('tex','ben');
echo (string)$a; // Array
var_dump((string)$a); // string(5) "Array"
这是 PHP 5.3 之前的行为。但是在 PHP 5.3 及更高版本中,strlen()
将为数组返回 NULL
。
来自Manual :
strlen() returns NULL when executed on arrays, and an E_WARNING level error is emitted.
Prior [to 5.3.0] versions treated arrays as the string Array, thus returning a string length of 5 and emitting an E_NOTICE level error.
关于php - array 上的 strlen 在 php 中返回 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17403086/