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

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

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

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

1 ответ

Решение

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

Пример #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() должен вернуть себя.

Другие вопросы по тегам