【PHP8.x】rewindメソッドの使い方
rewindメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『rewindメソッドは、ParentIteratorが内包する親イテレータを、その最初の要素に巻き戻す処理を実行するメソッドです』 ParentIteratorは、再帰的なイテレータを扱うRecursiveIteratorIteratorと組み合わせて使用され、現在の要素の親イテレータにアクセスする機能を提供します。このrewindメソッドは、その親イテレータの内部ポインタを先頭に戻す役割を担います。具体的には、ParentIteratorが保持している内部イテレータオブジェクト自身のrewindメソッドを呼び出します。この操作は、Iteratorインターフェースを実装するクラスにおける標準的な動作であり、foreachループのような反復処理が開始される際に、PHPエンジンによって内部的に自動で呼び出されます。これにより、ループが常にイテレータの先頭から開始されることが保証されます。開発者がこのメソッドを直接呼び出すことは少ないですが、イテレータの動作原理を理解する上で重要なメソッドです。なお、このメソッドは値を返しません。
構文(syntax)
1<?php 2 3$fruits = [ 4 'citrus' => ['orange', 'lemon'], 5 'berries' => ['strawberry', 'raspberry'], 6]; 7 8$iterator = new ParentIterator(new RecursiveArrayIterator($fruits)); 9 10// イテレータを一度最後まで進める 11foreach ($iterator as $key => $value) { 12 // 何らかの処理 13} 14 15// rewind() を呼び出して、イテレータを先頭に戻す 16$iterator->rewind(); 17 18// valid() は true を返し、current() は最初の要素を返す 19if ($iterator->valid()) { 20 echo $iterator->key(); // "citrus" 21}
引数(parameters)
引数なし
引数はありません
戻り値(return)
void
このメソッドは、イテレータを最初の要素に戻すために使用されます。戻り値はありません。