strlen on array在php中返回5

来自文档 –

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.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...