使用count()计算实现ArrayAccess的对象的元素?

时间:2011-03-13 13:38:42

标签: php arrays interface spl

当一个类实现ArrayAccess接口时,它就可以作为一个数组运行,完成OffsetGet,OffsetSet等等。

我没有看到的一件事就是我们想要count()sizeof()时的实现,这在我对PHP的有限知识中是相同的。

在标准PHP中是否有类似已经的内容?

1 个答案:

答案 0 :(得分:13)

正确的方法是实施Countable interface

Example #1 Countable::count() example

<?php
class myCounter implements Countable {
    public function count() {
        static $count = 0;
        return ++$count;
    }
}
$counter = new myCounter;
for($i=0; $i<10; ++$i) {
    echo "I have been count()ed " . count($counter) . " times\n";
}

换句话说,你实现了count()应该自己返回的逻辑。