php – 如何使用indlode使ArrayIterator或ArrayObject工作?

前端之家收集整理的这篇文章主要介绍了php – 如何使用indlode使ArrayIterator或ArrayObject工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在使用ArrayIterator时遇到了一些问题(实际上,与ArrayObject相同的问题).

对于99%的所有内容,我的扩展ArrayIterator表现得像一个阵列,并且运行良好.

不幸的是,implode()不喜欢被赋予ArrayIterator(或ArrayObject).

我无法在文档中找到任何建议通过扩展ArrayIterator实现任何其他类的文档,也没有任何其他方法可以覆盖.

任何人都可以建议如何使这个工作? (注意:每次使用implode时都要转换为数组不是解决方案,因为我希望这个类似数组的对象能够完全作为一个数组工作,并且不需要使用它来代码知道/关心/强制转换)

最简单的正确解决方案是使用 iterator_to_array来提供内爆,例如
$traversable = /* your iterator,ArrayObject or any other type of Traversable */
echo implode(",",iterator_to_array($traversable));

对于可以使用foreach迭代的任何内容,这将按预期工作.

原文链接:https://www.f2er.com/php/130397.html

猜你在找的PHP相关文章