Подсчет элементов для объектов, реализующих ArrayAccess с использованием count ()? - PullRequest
6 голосов
/ 13 марта 2011

Когда класс реализует интерфейс ArrayAccess, он становится готовым функционировать как массив, в комплекте с OffsetGet, OffsetSet и т. Д.

Одной вещью, которую я не видел, была реализация, когда мы хотим count() или sizeof(), что в моих ограниченных знаниях PHP равнозначно.

Есть ли что-нибудь подобное уже реализовано в стандартном PHP?

1 Ответ

13 голосов
/ 13 марта 2011

Правильный способ был бы реализовать Счетный интерфейс

Пример # 1 Пример счетной :: 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() должен вернуть сам.

...