Chrom
Новичок
Ошибка при возвращении массива функцией getIterator() интерфейса IteratorAggregate
Здраствуйте!
Есть класс, реализующий интерфейс IteratorAggregate:
Когда пытаюсь передать объект класса foreach'у,
ругается:
Fatal error: Uncaught exception 'Exception' with message 'Objects returned by CategoryList::getIterator() must be traversable or implement interface Iterator'
Однако, если вызвать метод getIterator() явно:
отрабатывает нормально. Пожалуйста, подскажите в чем проблема?
версия PHP - 5.2.3
Здраствуйте!
Есть класс, реализующий интерфейс IteratorAggregate:
PHP:
class CategoryList implements IteratorAggregate {
private $categories=array();
//...
//тут заполнение массива данными
//...
//перегрузка метода интерфейса
public function getIterator()
{
return $this->categories;
}
}
PHP:
foreach ($catList as $item)
{
print("<pre>");
print_r($item);
print("</pre>");
}
Fatal error: Uncaught exception 'Exception' with message 'Objects returned by CategoryList::getIterator() must be traversable or implement interface Iterator'
Однако, если вызвать метод getIterator() явно:
PHP:
foreach ($catList->getIterator() as $item)
{
print("<pre>");
print_r($item);
print("</pre>");
}
версия PHP - 5.2.3