You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:50:57