顾名思义,NoRewindIterator 在到达迭代器末尾时不会调用“rewind”方法。
让我们通过两个例子来演示它。
在这个例子中,“rewind”方法将在“foreach”到达其末尾后被调用,所以,我们可以根据需要多次重复打印相同的值
<?PHP
$iterator = new ArrayIterator(['PHP', 'Python', 'Go']);
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
?>
通过使用 NoRewindIterator,“rewind”将不会被调用,所以,我们不能像在前面的例子中那样做
<?PHP
$iterator = new ArrayIterator(['PHP', 'Python', 'Go']);
$iterator = new NoRewindIterator($iterator);
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
?>