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

Fel*_*ida 6 php arrays spl interface

当一个类实现ArrayAccess接口时,它就可以像数组一样工作,完成OffsetGet,OffsetSet等.

我没有看到的一件事是我们想要的时间count()sizeof()它的实现,在我对PHP的有限知识中,它实际上是相同的.

是否已经在标准PHP中实现了类似的东西?

Gor*_*don 13

正确的方法是实现Countable接口

示例#1 Countable :: count()示例

<?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";
}
Run Code Online (Sandbox Code Playgroud)

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