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

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

作成日: 更新日:

基本的な使い方

rewindメソッドは、RecursiveFilterIteratorオブジェクトが指し示す要素の位置を、コレクションの先頭に巻き戻す処理を実行するメソッドです。イテレータは、配列やオブジェクトの集合体を一つずつ順番に処理するための仕組みであり、このメソッドはその処理を最初からやり直すために使用されます。通常、foreachループでイテレータを処理する場合、ループが開始されるタイミングでPHPエンジンによって内部的に自動で呼び出されるため、開発者がこのメソッドを直接記述することは稀です。しかし、一度ループを終えた後で、同じイテレータを使って再度最初から処理を行いたいといった特定の状況で明示的に呼び出すこともできます。RecursiveFilterIteratorの場合、このメソッドが呼び出されると、内部に保持している元のイテレータを巻き戻し、さらにフィルタリングの条件を満たす最初の要素が見つかるまでイテレータを進めるという動作も行います。このメソッドに引数はなく、戻り値もありません。

構文(syntax)

1<?php
2
3class MyRecursiveFilterIterator extends RecursiveFilterIterator
4{
5    public function accept(): bool
6    {
7        // フィルタリング条件をここに実装します。
8        // この例では、常に true を返して全ての要素を許可します。
9        return true;
10    }
11}
12
13$array = ['a', 'b', ['c', 'd']];
14$iterator = new RecursiveArrayIterator($array);
15$filterIterator = new MyRecursiveFilterIterator($iterator);
16
17// イテレータを最初の要素に巻き戻します。
18$filterIterator->rewind();
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

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