質問: ArrayAccessを実装すれば、自作のクラスのインスタンスオブジェクトを配列のように利用することができそうです! しかし、`array_map`などの配列系の標準函数には利用できませんでした。 以下のコードでは簡単のために、SPLに含まれるArrayIteratorを例にとります。 ```
回答: まず、`array_map` を適用したくなるのは `ArrayAccess` ではなく `Traversable` じゃないでしょうか。 `ArrayAccess` には要素を走査したり、添え字の一覧を取得するようなインターフェイスは含まれないので、そういった関数を実装すること自体難しいように思います。 `array` でも `Traversable` でも同様に扱えるライブラリを使うのはどうでしょうか。 * * いずれも遅延評価を用いているので、対象がメモリにおさまりきれない要素数を持っていても、適用可能です。 (巨大なファイルの `SplFileObject` 等)