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

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

作成日: 更新日:

基本的な使い方

『nextメソッドは、イテレータを次の要素に進める処理を実行するメソッドです。このメソッドは、PHPの標準インターフェースであるIteratorで定義されており、RecursiveTreeIteratorクラスにおいて、ツリー構造内の要素を順番にたどるために使用されます。nextメソッドを呼び出すと、イテレータが現在指し示している要素(ノード)から、次の要素へと内部的なポインタが移動します。これにより、再帰的なデータ構造全体を一つずつ処理していくことが可能になります。通常、foreach構文を使ってRecursiveTreeIteratorオブジェクトをループ処理する場合、このnextメソッドは各反復の終わりにPHPによって自動的に呼び出されます。そのため、開発者がこのメソッドを直接コード上で呼び出すことは稀ですが、イテレータがどのように機能し、ループがどのように進行するのかという基本的な仕組みを理解する上で不可欠なメソッドです。一連の反復処理は、rewindで先頭に戻り、validで要素の存在を確認し、currentで値を取得し、nextで次に進むという流れで実現されます。』

構文(syntax)

1<?php
2
3$data = [
4    'Fruit' => [
5        'Apple',
6        'Orange',
7    ],
8    'Vegetable' => [
9        'Carrot',
10    ],
11];
12
13$arrayIterator = new RecursiveArrayIterator($data);
14$treeIterator = new RecursiveTreeIterator($arrayIterator);
15
16// イテレータを先頭から順に処理する
17for ($treeIterator->rewind(); $treeIterator->valid(); /* next()はループ本体で呼び出す */) {
18    echo $treeIterator->getPrefix() . $treeIterator->current() . PHP_EOL;
19
20    // イテレータを次の要素に進める
21    $treeIterator->next();
22}
23
24?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません