PHP 7.2前后count()处理非可数类型的行为差异及警告问题
嘿,关于PHP里count()(包括它的别名sizeof())函数在不同版本的行为差异,我给你理清楚啦:
PHP count()函数的版本行为差异
PHP 7.2之前的表现
在PHP 7.2版本之前,如果你对标量值或者不可数对象调用count(),函数会直接返回1或者0:
var_dump(count(123)); // 输出:int(1) var_dump(count(new stdclass)); // 输出:int(1) var_dump(count('hello world'));// 输出:int(1) var_dump(count(null)); // 输出:int(0)
简单来说:除了null会返回0,数字、字符串这类标量,以及普通的stdclass对象这类不可数的对象,调用count()都会得到1。
PHP 7.2及以上的表现
从PHP 7.2开始,这种用法就会触发警告了:
当你尝试对不可数类型调用count()(或者sizeof())时,PHP会抛出E_WARNING级别的警告信息,提示你count(): Parameter must be an array or an object that implements Countable,而不再直接返回1或0。
内容的提问来源于stack exchange,提问作者Toskan
相关产品推荐
相关产品推荐

