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

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

作成日: 更新日:

基本的な使い方

『currentメソッドは、イテレータが現在指している要素を、ツリー構造として整形された文字列で取得するために実行するメソッドです。RecursiveTreeIteratorクラスは、多次元配列などの再帰的なデータ構造を、階層的なツリー形式で表現するために利用されます。このcurrentメソッドは、単に要素の値をそのまま返すのではなく、ツリーの視覚的な表現を構成するための文字列を生成して返します。具体的に返される文字列は、現在の要素の階層を示す接頭辞(プレフィックス)、要素自身の値、そして要素の後ろに追加される接尾辞(ポストフィックス)を連結したものです。接頭辞には、一般的に「├─」や「└─」のようなツリーの枝を表す記号が含まれます。この機能により、foreachループなどでこのイテレータを処理する際に、開発者が手動で階層を整形するコードを書かなくても、データ構造を視覚的に分かりやすいツリー形式で簡単に出力することが可能になります。』

構文(syntax)

1<?php
2
3// 再帰的なデータ構造(多次元配列)を準備します
4$data = [
5    'PHP',
6    [
7        'Variables',
8        'Operators',
9    ],
10    'SQL'
11];
12
13// 配列用の再帰イテレータを作成します
14$arrayIterator = new RecursiveArrayIterator($data);
15
16// ツリー表示用のイテレータに上記のイテレータを渡します
17$treeIterator = new RecursiveTreeIterator($arrayIterator);
18
19// イテレータのポインタが有効な間、ループ処理を行います
20while ($treeIterator->valid()) {
21
22    // current()メソッドは、イテレータの現在の要素を返します。
23    // この構文は、現在のポインタが指す値(ツリー形式の文字列)を取得します。
24    echo $treeIterator->current() . PHP_EOL;
25
26    // next()メソッドで、ポインタを次の要素に進めます
27    $treeIterator->next();
28}
29
30?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

RecursiveTreeIterator::current() は、現在のイテレータの位置にある要素を返します。この要素は、ツリー構造におけるノードやその値などを表します。