php count()不适用于对象

时间:2014-07-22 10:26:44

标签: php

我有对象

stdClass Object
(
    [0] => stdClass Object
        (
            [id] => 18
        )

    [1] => stdClass Object
        (
            [id] => 20
        )

)

count()函数应显示2,但显示为1。

3 个答案:

答案 0 :(得分:3)

来自documentation

  

对于对象,如果安装了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。