来自文档 –
int strlen ( string $string )
它需要字符串作为参数,现在当我这样做时 –
$a = array('tex','ben');
echo strlen($a);
输出 –
五
不过我期待的是,有两种输出 –
>如果是数组,PHP可能会将其转换为字符串,因此数组将变为 –
‘texben’所以它可能输出 – 6
>如果第一个不是,它将转换为这样的东西 –
“array(‘tex’,’ben’)”所以预期的输出应为-18(所有项目的数量)
但每次输出 – 5
我从输出中考虑的是数组字数为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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。