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

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

作成日: 更新日:

基本的な使い方

nextメソッドは、イテレータの内部ポインタを次の親イテレータに移動させるために実行するメソッドです。このメソッドは、ParentIteratorクラスで利用され、再帰的なデータ構造を扱う際に重要な役割を果たします。ParentIteratorは、RecursiveIteratorIteratorなどで階層構造を持つデータを走査しているときに、現在位置の要素から親要素を順にさかのぼるためのイテレータです。例えば、深い階層にあるファイルから、その親ディレクトリ、さらにその上のディレクトリへとたどるような処理を可能にします。nextメソッドを呼び出すと、イテレータは現在の親要素から、さらに一つ上の階層にある親要素へとポインタを移動させます。foreach文でParentIteratorをループ処理する場合、このnextメソッドが各繰り返しの内部で自動的に呼び出されることで、ルート要素に向かって階層を一つずつさかのぼっていく処理が実現されます。このメソッド自体は値を返さず、内部ポインタを更新する操作のみを行います。値を取得するにはcurrentメソッドなどを別途使用する必要があります。

構文(syntax)

1<?php
2
3$fruits = [
4    'citrus' => ['orange', 'lemon'],
5    'berries' => ['strawberry', 'raspberry'],
6];
7
8$iterator = new RecursiveArrayIterator($fruits);
9$parentIterator = new ParentIterator($iterator);
10
11// イテレータを先頭に戻す
12$parentIterator->rewind();
13
14// イテレータが有効な間ループする
15while ($parentIterator->valid()) {
16    // 現在のキー (親のキー) を表示
17    echo $parentIterator->key() . PHP_EOL;
18
19    // イテレータを次の要素に進める
20    $parentIterator->next();
21}
22

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

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