ArrayAccess、Iterator、Countableを実装するオブジェクトがあります。これにより、ほぼ完全なアレイマスキングが生成されます。$object[foo]オフセット( )でアクセスしたり、ループに入れforeachたり、その他多くのことを行うことができます。
しかし、Iteratorから必要なメソッドを実装したとしても、ネイティブの配列イテレーター関数(、、、、)にそれnext()を与えることはできません。PHPは、そのメンバー変数を頑固に反復しようとしているようであり、iterator-methodsを完全に無視しています。reset()current()key()
オブジェクトを残りの配列トラバース関数にフックするインターフェイスはありますか、それとも私が持っているものに固執していますか?
更新: IteratorAggregateも答えではないようです。-loopsで使用されforeachますが、基本的な配列イテレータ関数はメソッドを呼び出しません。