代码之家  ›  专栏  ›  技术社区  ›  Kirzilla

使用SPL ArrayObject、ArrayIterator、RecursiveArrayIterator代替常规数组有什么好处?

  •  11
  • Kirzilla  · 技术社区  · 14 年前

    我已经开始从arrayiiterators学习PHP SPL了,我想知道使用SPL ArrayObject、arrayiiterator、recursivearrayiiterator代替常规数组有什么好处?

    a) 我听说使用SPL迭代器的循环将减少内存使用(但为什么?)。我真的不知道该相信还是不相信,因为我不知道它如何减少内存使用。

    也许,我的问题对某些人来说似乎很简单,但是关于SPL的信息/文档太少了。

    1 回复  |  直到 11 年前
        1
  •  8
  •   Rob Olmos    14 年前

    您所看到的主要好处是高效的数据访问主要是在可读性方面。这样,您就可以像foreach中的数组一样使用对象,从而与PHP进行更紧密的交互。

    b) 本质上

    一个很好的例子就是 SimpleXML 分机。与之交互的PHP/XML对象也类似于一个数组,使用起来非常有效,因为您只需foreach或访问列表中的一个元素。如果需要标记名或属性,则不必从对象中获取数组,然后迭代并对其执行其他操作。