顧名思義,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;
}
?>