首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使ArrayIterator或ArrayObject与内爆一起工作?

如何使ArrayIterator或ArrayObject与内爆一起工作?
EN

Stack Overflow用户
提问于 2013-09-06 11:33:26
回答 2查看 2.2K关注 0票数 8

我在ArrayIterator上遇到了一些问题(实际上,ArrayObject也有同样的问题)。

对于99%的所有内容,我的扩展ArrayIterator的行为就像一个数组,并且工作得很好。

不幸的是,implode()不喜欢被授予一个ArrayIterator (或ArrayObject)。

我在任何地方都找不到任何文档,这些文档建议使用扩展的ArrayIterator实现任何其他类,也不能找到任何其他要重写的方法。

有人能给我建议一下该怎么做吗?(注意:每次使用内爆代码时,对数组的转换都不是一个解决方案,因为我希望这个类似数组的对象精确地作为数组工作,而不是让使用它的代码必须知道/护理/转换)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-06 11:40:10

最简单的正确的解决方案是使用iterator_to_array来喂养implode

代码语言:javascript
复制
$traversable = /* your iterator, ArrayObject or any other type of Traversable */
echo implode(",", iterator_to_array($traversable));

对于任何可以使用foreach进行迭代的东西,这都会像预期的那样工作。

票数 10
EN

Stack Overflow用户

发布于 2013-09-06 11:38:33

尝试向下转换数组((array) $arrayObject)implode(",", (array) $arrayObject);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18656855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档