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

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

作成日: 更新日:

基本的な使い方

beginIterationメソッドは、RecursiveTreeIteratorによる繰り返し処理(イテレーション)が開始される際に、内部的に呼び出されるメソッドです。このメソッドは、RecursiveTreeIteratorが扱う再帰的なデータ構造をツリー形式で表示する処理の、まさに一番最初に実行されます。例えば、foreachループを使用してRecursiveTreeIteratorのインスタンスの各要素を順番に処理する場合、ループが開始されて最初の要素にアクセスする直前に、このbeginIterationメソッドが一度だけ自動的に呼び出されます。通常、開発者がこのメソッドを直接呼び出すことはありませんが、RecursiveTreeIteratorの内部的な動作を理解する上で重要な部分です。主な役割は、ツリー全体の描画を開始するための初期化処理を行うことであり、イテレーションのライフサイクルにおける「開始」の合図として機能します。処理の終了時に呼び出されるendIterationメソッドと対になっており、繰り返し処理全体の開始と終了を管理する役割を担っています。

構文(syntax)

1<?php
2class MyTreeIterator extends RecursiveTreeIterator
3{
4    public function beginIteration(): void
5    {
6        echo "イテレーションを開始します。" . PHP_EOL;
7    }
8}
9
10$data = new RecursiveArrayIterator([
11    'A',
12    'B' => [
13        'C',
14        'D',
15    ],
16    'E'
17]);
18
19$iterator = new MyTreeIterator($data);
20
21// foreachで処理を開始すると、beginIteration()が自動的に呼び出されます。
22foreach ($iterator as $item) {
23    echo $iterator->getPrefix() . $item . PHP_EOL;
24}
25?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

【PHP8.x】beginIterationメソッドの使い方 | いっしー@Webエンジニア