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

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

作成日: 更新日:

基本的な使い方

rewindメソッドは、イテレータを最初の要素に巻き戻す処理を実行するメソッドです。このメソッドは、PHPの標準インターフェースであるIteratorインターフェースで定義されており、RecursiveTreeIteratorクラスはこれを実装しています。foreach構文でイテレータを走査する際、ループの開始時にPHPエンジンによってこのrewindメソッドが暗黙的に呼び出されます。これにより、常にデータ構造の先頭から要素の処理が開始されることが保証されます。開発者が手動でこのメソッドを呼び出すことも可能で、その場合はイテレーションの途中で処理を中断し、再び最初から要素をたどり直すことができます。RecursiveTreeIteratorのコンテキストでは、このメソッドが呼び出されると、内部的に保持している再帰イテレータ、例えばRecursiveDirectoryIteratorなどのrewindメソッドが実行されます。その結果、イテレータの内部ポインタは木構造のルートにあたる最初の要素を指す状態にリセットされます。このメソッドは値を返さず、返り値の型はvoidです。

構文(syntax)

1<?php
2
3// RecursiveTreeIteratorのインスタンスを作成します
4$iterator = new RecursiveTreeIterator(
5    new RecursiveArrayIterator(['Item 1', ['Sub-item 1.1', 'Sub-item 1.2'], 'Item 2'])
6);
7
8// foreachループなどでイテレータを最後まで進めます
9foreach ($iterator as $value) {
10    // 何らかの処理
11}
12
13// rewind()メソッドを呼び出し、イテレータを最初の要素に巻き戻します
14$iterator->rewind();
15
16?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

void

イテレータを最初の要素に巻き戻します。戻り値はありません。