【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

このメソッドは、イテレータを最初の要素に戻すために使用されます。戻り値はありません。

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