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

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

作成日: 更新日:

基本的な使い方

__constructメソッドは、RecursiveIteratorIteratorの新しいインスタンスを生成するメソッドです。このメソッドは、多次元配列や木構造のような階層的なデータ構造を再帰的に走査するための準備を行います。最初の引数には、走査対象となるRecursiveIteratorインターフェースを実装したオブジェクトを指定します。これにより、入れ子になったデータ構造を反復処理の対象として設定します。2番目の引数では、反復処理の挙動を制御するモードを指定します。例えば、デフォルトのモードであるLEAVES_ONLYは、子を持たない末端の要素のみを返します。SELF_FIRSTモードを指定すると、親要素を処理した後にその子要素を処理し、CHILD_FIRSTモードでは逆に子要素をすべて処理した後に親要素を処理します。このように、コンストラクタで走査対象と挙動モードを初期設定することで、複雑なデータ構造を単純なループで効率的に扱うことが可能になります。

構文(syntax)

1<?php
2$traversableObject = new RecursiveArrayIterator(['a', ['b', 'c']]);
3
4$instance = new RecursiveIteratorIterator(
5    $traversableObject, // 第1引数: Traversableなイテレータ
6    RecursiveIteratorIterator::LEAVES_ONLY, // 第2引数(オプション): モード
7    0 // 第3引数(オプション): フラグ
8);

引数(parameters)

Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0

  • Traversable $iterator: 再帰的にイテレーションを行う対象の Traversable オブジェクト
  • int $mode = RecursiveIteratorIterator::LEAVES_ONLY: イテレーションのモードを指定する整数。デフォルトは葉ノードのみを処理するモード
  • int $flags = 0: イテレーションの追加フラグを指定する整数

戻り値(return)

戻り値なし

戻り値はありません