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

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

作成日: 更新日:

基本的な使い方

nextElementメソッドは、RecursiveTreeIteratorが指し示す内部ポインタを、木構造における次の要素へ移動させる処理を実行するメソッドです。このメソッドは、PHP標準のIteratorインターフェースで定義されているnext()メソッドを実装したものです。foreach構文を用いてRecursiveTreeIteratorオブジェクトを反復処理する場合、各サイクルの最後にPHPエンジンによって内部的に呼び出されます。そのため、開発者がこのメソッドをコード上で直接呼び出すことはほとんどありません。nextElementメソッドが実行されると、イテレータの内部状態が更新され、次にcurrent()メソッドを呼び出した際には次の要素の値が返されます。同様に、key()メソッドが返すキーや、getPrefix()メソッドが返すツリー構造を表すための接頭辞なども、新しく指し示された要素に対応するものに更新されます。もしイテレータがコレクションの末尾に到達している場合、このメソッドを呼び出すと内部ポインタは無効な位置を指すようになり、続くvalid()メソッドの呼び出しはfalseを返すことになります。

構文(syntax)

1<?php
2
3$fruits = new RecursiveArrayIterator([
4    'citrus' => ['orange', 'lemon'],
5    'berries' => ['strawberry', 'raspberry'],
6]);
7
8$tree = new RecursiveTreeIterator($fruits);
9
10// イテレータを手動で操作する
11$tree->rewind(); // 最初の要素に移動
12
13while ($tree->valid()) { // 現在位置が有効か確認
14    // 現在の要素を表示
15    echo $tree->getPrefix() . $tree->current() . PHP_EOL;
16    
17    // 次の要素に移動する
18    $tree->nextElement();
19}
20
21?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません