カテゴリー:
Generator クラス
閲覧数:504 配信日:2016-12-04 18:51
比較
通常の関数
・return で関数実行を終了
・値を返す
// not generator
function func($n)
{
return $n;
}
echo func(10);// 10
yield キーワード
・「ジェネレータ関数」の実行を一時停止
・「ジェネレータを呼び出しているループ」に値を戻す
・「Generatorオブジェクト」を返す
// generator
function func($n)
{
yield $n;
}
$generator = func(10);
foreach ($generator as $val) {
echo "$val<br>"; //10
}
var_dump($generator); //object(Generator)#1 (0) { }
var_export($generator); //Generator::__set_state(array( ))
echo get_class($generator); //Generator