Функция генератор (механика работы)

Вот есть функция-генератор:

//Использование ссылки
function &reference() 
{     
	$value = 3;     
	while ($value > 0) 
	{       
		yield $value;     
	}   
}   
foreach (reference() as &$number) 
{     
	echo (--$number).' ';   
} 

Механика программы:выделяется память под функцию reference () (1 строка), потом цикл foreach переменную value (которая передана yield) записывает в переменную number. И number. выводится оператором echo, уже предварительно уменьшенное на единицу. Дальше, на втором шаге итерации, ссылочная переменная number меняет переменную value и компилятор переходит на строку 5, выполняется очередной yield и дальше передается управление foreach. Вопрос: если правильно описана механика (примерно), управление действительно передается с 11 строки на строку 5 в генератор обратно?

vedro-compota's picture

просьба убрать номера строк из кода

_____________
матфак вгу и остальная классика =)