【PHP8.x】rewindメソッドの使い方

rewindメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

rewindメソッドは、CallbackFilterIteratorが内部で保持しているイテレータを、その最初の要素に巻き戻す処理を実行するメソッドです。CallbackFilterIteratorは、配列やオブジェクトの集合などを順番に処理するための仕組みであるイテレータをラップし、コールバック関数で条件に合う要素だけを抽出します。このrewindメソッドは、そのフィルタリング対象となる元のイテレータのrewindメソッドを呼び出し、内部ポインタを先頭の位置にリセットします。この操作により、イテレータはコレクションの最初の要素を指す状態になります。通常、このメソッドはforeachループのような反復処理が開始される際に、PHPエンジンによって暗黙的に呼び出されます。そのため、開発者がコード上で直接このメソッドを記述する機会は少ないですが、イテレータの反復処理を意図的に最初からやり直したい場合に明示的に呼び出すことができます。このメソッドはIteratorインターフェースで定義されているメソッドの一つであり、返り値はありません。

構文(syntax)

1<?php
2
3// フィルタリング対象のイテレータを用意します
4$innerIterator = new ArrayIterator([1, 2, 3, 4, 5, 6]);
5
6// コールバック関数でフィルタリングするイテレータを作成します
7$filterIterator = new CallbackFilterIterator($innerIterator, function ($current) {
8    // 偶数のみを許可します
9    return $current % 2 === 0;
10});
11
12// 一度ループして、イテレータの内部ポインタを最後まで進めます
13foreach ($filterIterator as $value) {
14    // このループでは何も処理しません
15}
16
17// rewind()メソッドを呼び出して、イテレータの内部ポインタを先頭に戻します
18$filterIterator->rewind();
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

【PHP8.x】rewindメソッドの使い方 | いっしー@Webエンジニア