我有对象
stdClass Object
(
[0] => stdClass Object
(
[id] => 18
)
[1] => stdClass Object
(
[id] => 20
)
)
count()函数应显示2,但显示为1。
答案 0 :(得分:3)
对于对象,如果安装了SPL,则可以通过实现接口
Countable
挂钩count()
。该接口只有一个方法Countable::count()
,它返回count()
函数的返回值。
stdClass
不 implements Countable
,因此count
只会返回1
。
如果参数不是数组,或者不是具有实现
Countable
接口的对象,则会返回1
。
(换句话说,RTM:p)
答案 1 :(得分:1)
试试这个,希望它能运作
$count = count((array)$obj);
答案 2 :(得分:0)
count()
计算数组中的索引,而不是对象的属性。尝试使用
count((array)$objectName);
来自文档,
count()返回array_or_countable中的元素数。如果参数不是数组或不是具有已实现Countable接口的对象,则将返回1。有一个例外,如果array_or_countable为NULL,则返回0。