したがって、、、および組み込みのインターフェイスを実装するIteratorことArrayAccessで、オブジェクトがループで使用されたとき、またはプロパティが配列インデックス()であるかのようにアクセスされた場合にCountable、オブジェクト内で何が発生するかを制御できます。foreach$object['id']
たとえば、必要に応じて、データベースのフィールドを$object['version'] += 1自動的にインクリメントできるように設定できます。version
不足しているのは、にキャストするobjectことarrayです。次の場合に何が起こるかを制御できるインターフェイスまたはクラスはあります(array) $objectか?どんなにあいまいであっても、組み込みのインターフェースやクラスはありますか?例:すべてのパブリックオブジェクトプロパティをダンプする通常のオブジェクトから配列への変換の代わりに(array) $object戻りたい場合はどうなりますか?$this->propertyArray
注:配列とオブジェクトの外部の違いを可能な限り最小限に抑えることが目的であるため、メソッド名による呼び出しを要求するようなもの$object->toArray()はカウントされません。