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

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

作成日: 更新日:

基本的な使い方

rewindメソッドは、イテレータを最初の要素に巻き戻す処理を実行するメソッドです。このメソッドは、PHPの標準インターフェースである Iterator インターフェースの一部として定義されており、オブジェクトを foreach ループなどで反復処理するために不可欠な機能です。RegexIterator クラスもこのインターフェースを実装しています。foreach ループなどで RegexIterator オブジェクトの反復処理が開始される際、PHPのエンジンはまず内部的にこの rewind メソッドを呼び出します。これにより、イテレータの内部ポインタがコレクションの先頭にリセットされ、常に最初の要素から処理が開始されることが保証されます。RegexIterator の場合、このメソッドはコンストラクタで渡された内部イテレータ自身の rewind メソッドを呼び出し、正規表現によるフィルタリング処理を最初から行えるように準備を整えます。通常、開発者がこのメソッドを明示的に呼び出す必要はなく、PHPの反復処理の仕組みの中で自動的に利用されます。このメソッドは値を返しません。

構文(syntax)

1<?php
2// イテレート対象の配列
3$fruits = new ArrayIterator(['apple', 'banana', 'apricot', 'cherry']);
4
5// 'ap'で始まる文字列にマッチするイテレータ
6$regexIterator = new RegexIterator($fruits, '/^ap/');
7
8// 1回目のループ
9foreach ($regexIterator as $value) {
10    // このループでイテレータは最後まで進む
11}
12
13// rewind() を呼び出してイテレータを先頭に戻す
14$regexIterator->rewind();
15
16// rewind() 後、current() は最初の要素を指す
17echo $regexIterator->current(); // "apple" が出力される
18?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

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