Count elements for objects implementing ArrayAccess using count()?
When a class implements the ArrayAccess
interface, it becomes ready to function as an array, complete with OffsetGet, OffsetSet and so on.
One thing I didn't see was an implementation for when we want to count()
or sizeof()
it, which, in m开发者_运维知识库y limited knowledge of PHP, amounts to the same.
Is there anything like it already implemented in standard PHP?
The correct way would be to implement the Countable interface
Example #1 Countable::count() example
<?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";
}
In other words, you implement the logic what count()
should return yourself.
精彩评论