Safe using:
<?php
$cnt = iterator_count(clone $iterator);
?>
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
iterator_count — 计算迭代器中元素的个数
iterator
要计数的迭代器。
迭代器iterator
中的元素个数。
Example #1 iterator_count() example
<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_count($iterator));
?>
以上例程会输出:
int(4)
Safe using:
<?php
$cnt = iterator_count(clone $iterator);
?>
After using this function, the traversable's pointer will point at the end. Examples 2 and 3 highlight this using code.
This means that when you call iterator_count($foo)...
- Before a foreach-loop on $foo, the loop will not execute because it's already at the end. Calling $foo->rewind() will reset the traversable to the beginning.
- Inside a foreach-loop on $foo, the loop will complete the current iteration and not repeat. Something like $foo->seek($i) can be used to reset the pointer, where $i contains the pointer's value prior to counting.