NoRewindIterator クラス
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
はじめに
このイテレータは巻き戻しの操作を無視します。 これにより、一部のみを走査する 複数の foreach ループでイテレータを処理することが可能になります。
クラス概要
/* メソッド */
/* 継承したメソッド */
}目次
- NoRewindIterator::__construct — NoRewindIterator を作成する
- NoRewindIterator::current — 現在の値を取得する
- NoRewindIterator::key — 現在のキーを取得する
- NoRewindIterator::next — 次の要素に移動する
- NoRewindIterator::rewind — 内部イテレータの巻き戻し操作を阻止する
- NoRewindIterator::valid — イテレータの有効性を検証する
+add a note
User Contributed Notes 1 note
Anonymous ¶
4 years ago
As its name implies, NoRewindIterator doesn't invoke the "rewind" method when It reaches the end of the iterator.
Let's demonstrate it by two examles.
In this example the "rewind" method will be invoked after when the "foreache" reaches its end, so, we can repeat printing the same values as many times as we want:
<?PHP
$iterator = new ArrayIterator(['PHP', 'Python', 'Go']);
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
?>
By using the NoRewindIterator, the "rewind" won't be invoked, so, we can't do as we did in previous example:
<?PHP
$iterator = new ArrayIterator(['PHP', 'Python', 'Go']);
$iterator = new NoRewindIterator($iterator);
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
// doesn't do anything
foreach ($iterator as $item) {
echo $item.PHP_EOL;
}
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google