当前位置:  开发笔记 > 编程语言 > 正文

PHP对象作为虚拟数组

如何解决《PHP对象作为虚拟数组》经验,为你挑选了1个好方法。

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

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

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

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



1> ringmaster..:

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

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

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有