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