6

当一个类实现了ArrayAccess接口时,它就可以作为一个数组使用了,包括 OffsetGet、OffsetSet 等等。

我没有看到的一件事是当我们想要count()sizeof()它时的实现,在我对 PHP 的有限了解中,它相当于相同。

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

4

1 回答 1

13

正确的方法是实现Countable 接口

Example #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";
}

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

于 2011-03-13T13:40:16.330 回答