php yield运行流程

<?php

public function y($n)
{
   echo 'start';
   for ($i=0;$i<$n;$i++){
      yield $i;
   }
   echo 'end';
   return 'return结果';
}

$g = $this->y(5);         //返回Generator实例【因为代码含yield关键词】
foreach ($g as $k=>$v){   //foreach开始执行y()函数,输出start,遇到yield结束
   echo $v;               //依次输出yield的值0,1,2,3,4,直到for循环结束,输出end
}
echo $g->getReturn();     //输出return结果,必须foreach结束后执行,否则报错

//start01234endreturn结果
?>