好的,正如标题所说:使用ArrayIterator而不是简单的foreach循环有什么主要好处。
我有一个被用作容器的对象,它的主要职责是存储一个对象数组。
有人建议我让我的类实现IteratorAggregate并返回一个带有我的对象数组的ArrayIterator:像这样:
public function getIterator()
{
return new ArrayIterator($this->_objs);
}
我不能看到任何好处,而不是简单地返回数组然后使用标准foreach循环它们。
请有人解释为什么这会是一个好主意?
答案 0 :(得分:-2)
返回数组会公开对象的内部结构。使用迭代器更抽象。
我不知道你的课程做了什么,或者哪个更适合你的课程。但作为一般经验法则,如果唯一的实际用例是迭代数据,那么你应该返回一个迭代器。