顾名思义,NoRewindIterator 在到达迭代器末尾时不会调用“rewind”方法。
让我们通过两个示例来演示它。
在这个例子中,当“foreach”到达末尾时,“rewind”方法会被调用,所以,我们可以根据需要重复打印相同的值。
<?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;
}
?>