PHP对象作为虚拟数组

Hen*_*aul 1 php arrays spl

我有一个实现ArrayAccess,IteratorCountable的对象.这产生了一个非常完美的阵列掩蔽.我可以使用offsets($object[foo])访问它,我可以将它放入foreach-loop和许多其他东西.

但我不能做的是把它交给本地阵列迭代器函数(next(),reset(),current(),key()),即使我已经实现了从迭代器所需要的方法.PHP似乎顽固地试图遍历其成员变量,并完全忽略迭代器方法.

是否有一个接口可以将对象挂钩到剩余的数组遍历函数,还是我坚持使用我拥有的东西?

更新: IteratorAggregate似乎也不是答案.虽然它在foreach-loops中使用,但基本数组迭代器函数不会调用方法.

rin*_*ter 5

最近的PHP更改阻止使用标准数组函数(重置,下一步等)操纵ArrayIterators表单.

这应该很快恢复:http: //news.php.net/php.internals/42015