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

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

作成日: 更新日:

基本的な使い方

nextメソッドは、再帰的なイテレータの内部ポインタを次の有効な要素へ移動させる処理を実行するメソッドです。このメソッドは、PHP標準のIteratorインターフェースの一部として定義されており、通常はforeachループの内部で自動的に呼び出されます。foreach文がコレクションの各要素を順番に処理できるのは、このnextメソッドが裏側で機能しているためです。特にRecursiveIteratorIteratorクラスの場合、nextメソッドは単純に隣の要素へ進むだけではありません。現在の要素がさらに子要素を持つイテレータである場合、設定されたモードに従って再帰的にその内部へ進み、次の走査対象となる要素を探します。この仕組みにより、多次元配列やオブジェクトの階層構造といった複雑なデータを、あたかも一次元のリストであるかのように簡単に扱うことが可能になります。開発者が手動でイテレーションを制御したい場合、例えばwhileループとvalid()メソッドを組み合わせて使う際に、明示的にnext()を呼び出すことがあります。なお、このメソッドはポインタを移動させる操作のみを行い、値を返しません。現在の要素の値を取得するには、別途current()メソッドを呼び出す必要があります。

構文(syntax)

1<?php
2
3$arrayIterator = new RecursiveArrayIterator(['first', 'second']);
4$iterator = new RecursiveIteratorIterator($arrayIterator);
5
6$iterator->rewind(); // ポインタを先頭にセット
7
8// next() を呼び出す前の要素を取得
9echo $iterator->current() . PHP_EOL;
10
11// ポインタを次の要素に進める
12$iterator->next();
13
14// next() を呼び出した後の要素を取得
15echo $iterator->current() . PHP_EOL;
16
17?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

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