オブジェクトの反復処理
https://www.php.net/manual/ja/language.oop5.iterations.php
foreach 命令などにオブジェクト(インスタンス)を渡すと、デフォルトでは「全てのpublicなプロパティ」を反復処理に利用する事ができます。
https://www.php.net/manual/ja/class.traversable.php
https://www.php.net/manual/ja/class.iterator.php
https://www.php.net/manual/ja/class.iteratoraggregate.php
Traversable インターフェイス(を継承した、IteratorAggregate
あるいは Iterator
)を継承したクラスのオブジェクト(インスタンス)は、任意の方法で反復処理を行わせる事ができます。
SPLイテレータ
ジェネレータ( https://www.php.net/manual/ja/language.generators.php )は後ほど解説をします。
オブジェクトの比較
https://www.php.net/manual/ja/language.oop5.object-comparison.php
比較演算子(==)を使用する際、 オブジェクト変数は、単純に比較されます。
一方で一致演算子(===)を使用する場合、 オブジェクト変数は、同じクラスの同じインスタンスを参照する場合のみ、等しいとされます。
このコラムに関連するコードはこちらになります
https://github.com/php-engineer-examination/php8_column_expert/blob/main/src/031.php