Подсчет элементов для объектов, реализующих 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()
должен вернуть себя.