我已经开始从arrayiiterators学习PHP SPL了,我想知道使用SPL ArrayObject、arrayiiterator、recursivearrayiiterator代替常规数组有什么好处?
a) 我听说使用SPL迭代器的循环将减少内存使用(但为什么?)。我真的不知道该相信还是不相信,因为我不知道它如何减少内存使用。
也许,我的问题对某些人来说似乎很简单,但是关于SPL的信息/文档太少了。
您所看到的主要好处是高效的数据访问主要是在可读性方面。这样,您就可以像foreach中的数组一样使用对象,从而与PHP进行更紧密的交互。
b) 本质上
一个很好的例子就是 SimpleXML 分机。与之交互的PHP/XML对象也类似于一个数组,使用起来非常有效,因为您只需foreach或访问列表中的一个元素。如果需要标记名或属性,则不必从对象中获取数组,然后迭代并对其执行其他操作。