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

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

作成日: 更新日:

基本的な使い方

『getPrefixメソッドは、RecursiveTreeIteratorが処理している現在の要素の前に付加される、接頭辞(プレフィックス)の文字列を取得するために実行するメソッドです。このメソッドが返す接頭辞は、入れ子になった配列やディレクトリ構造といった再帰的なデータ構造をツリー形式で表示する際に、階層の深さや親子関係を視覚的に分かりやすく表現するために用いられます。例えば、ディレクトリ構造をツリー表示する場合、各ファイル名の前に付く |--\--` のような、枝分かれや階層を示す記号とインデントがこれに該当します。RecursiveTreeIteratorは、イテレータを走査する過程で、現在の要素がその階層で最後の子要素であるかどうかを自動的に判断し、それに応じて適切な接頭辞を内部で組み立てます。このgetPrefixメソッドを呼び出すことで、その自動生成された、現在の要素に最適な接頭辞文字列を取得することができます。これにより、開発者は自身で階層を管理する複雑な処理を記述することなく、整然としたツリー表示を容易に実現できます。

構文(syntax)

1<?php
2
3// 再帰的なデータ構造(多次元配列)
4$data = [
5    'root',
6    'children' => [
7        'item 1',
8        'item 2' => [
9            'sub-item 2-1',
10            'sub-item 2-2',
11        ],
12        'item 3',
13    ],
14];
15
16// 再帰イテレータを準備
17$arrayIterator = new RecursiveArrayIterator($data);
18$treeIterator = new RecursiveTreeIterator($arrayIterator);
19
20// ツリー構造をループで処理
21foreach ($treeIterator as $value) {
22    // getPrefix()メソッドでツリーの階層を示す接頭辞を取得し、
23    // 現在の要素の値と結合して出力します。
24    // 出力例: "|- ", "`-- ", "  " など
25    echo $treeIterator->getPrefix() . $value . PHP_EOL;
26}
27
28?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

このメソッドは、現在のイテレータ位置におけるプレフィックス文字列を返します。