古庄親方の上級試験コラム#031 言語リファレンス オブジェクトの反復処理と比較

目次

オブジェクトの反復処理

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/spl.iterators.php反復処理の事を「イテレータ(iterator)」と言いますが、PHPでも多くのイテレータが定義されているので、見てみるとよいでしょう。

ジェネレータ( 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

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次