метод возвращает итератор

alex77

Новичок
например есть такой

PHP:
class a {
static function getall() {
$r = array();
$data = $db->query('select* from t');
foreach ($data as $i) {
$o = new self;
$o->data = $i;
$r[] = $o;
}
return $r;
}

Как сделать, чтобы getall не крутил foreach а вернул итератор, который бы уже по одному возвращал эти я бв их выводил куданить и уничтожал по одному, а не сразу весь массив потомучто если их 100500 то расход памяти
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
а чтож по твоему есть $data если не Iterator?
 

WMix

герр M:)ller
Партнер клуба
на то что должен вернуть
PHP:
$all =a::getall(); current($all);
 

alex77

Новичок
PHP:
class a {
static function getall() {
$data = $db->query('select* from t');
foreach ($data as $i) {
$o = new self;
$o->data = $i;
yield $o;
}
}
 
Сверху