【PHP8.x】endChildrenメソッドの使い方
endChildrenメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
endChildrenメソッドは、RecursiveTreeIteratorが特定の階層にある子要素の反復処理をすべて完了した際に、内部的に呼び出される処理を実行するメソッドです。このイテレータは、ディレクトリ構造のような階層的なデータをツリー形式で表示するために使用されます。endChildrenメソッドは、ある階層の最後の要素を処理し終え、親の階層へ戻る直前のタイミングで自動的に実行されます。これは、子要素の処理を開始する前に呼び出されるbeginChildrenメソッドと対になる機能です。beginChildrenが階層の開始を、endChildrenが階層の終了を管理することで、正確なツリー構造の描画が可能になります。通常、このメソッドをプログラマが直接呼び出すことはありません。しかし、RecursiveTreeIteratorを継承して独自のクラスを作成し、このメソッドをオーバーライド(再定義)することで、各階層の終わりに特定の区切り文字やHTMLタグを追加するなど、出力形式を自由にカスタマイズすることが可能です。
構文(syntax)
1<?php 2class MyTreeIterator extends RecursiveTreeIterator 3{ 4 public function endChildren(): void 5 { 6 // このメソッドは、子要素を持つ階層の反復処理が 7 // 終了した直後に自動的に呼び出されます。 8 } 9} 10 11$data = [ 12 'Item 1', 13 'Item 2' => [ 14 'SubItem A', 15 'SubItem B' 16 ], 17 'Item 3' 18]; 19 20$iterator = new RecursiveArrayIterator($data); 21$treeIterator = new MyTreeIterator($iterator); 22 23// foreach ループでイテレータを走査すると、 24// 'Item 2' の子要素 ('SubItem A', 'SubItem B') の処理が終わった時点で、 25// endChildren() メソッドが自動的に呼び出されます。 26// このメソッドは引数を取らず、何も返しません (void)。 27foreach ($treeIterator as $item) { 28 // イテレーションの処理 29}
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません