PHP SPL ArrayIterator v简单的foreach

时间:2012-05-28 22:07:06

标签: php spl

好的,正如标题所说:使用ArrayIterator而不是简单的foreach循环有什么主要好处。

我有一个被用作容器的对象,它的主要职责是存储一个对象数组。

有人建议我让我的类实现IteratorAggregate并返回一个带有我的对象数组的ArrayIterator:像这样:

  public function getIterator()
  {  
    return new ArrayIterator($this->_objs);  
  }

我不能看到任何好处,而不是简单地返回数组然后使用标准foreach循环它们。

请有人解释为什么这会是一个好主意?

1 个答案:

答案 0 :(得分:-2)

返回数组会公开对象的内部结构。使用迭代器更抽象。

我不知道你的课程做了什么,或者哪个更适合你的课程。但作为一般经验法则,如果唯一的实际用例是迭代数据,那么你应该返回一个迭代器。