Ошибка при возвращении массива функцией getIterator() интерфейса IteratorAggregate

Chrom

Новичок
Ошибка при возвращении массива функцией getIterator() интерфейса IteratorAggregate

Здраствуйте!
Есть класс, реализующий интерфейс IteratorAggregate:
PHP:
class CategoryList implements IteratorAggregate {

    private $categories=array();

    //...
    //тут заполнение массива данными
    //...

    //перегрузка метода интерфейса
    public function getIterator()
    {
	return $this->categories;			
    }
}
Когда пытаюсь передать объект класса foreach'у,
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
 

dr-sm

Новичок
- return $this->categories;
+ return new ArrayIterator($this->categories);
@see http://ru2.php.net/IteratorAggregate
 
Сверху