关于 PHP yield ,下面程序的输出结果是__?

function gen() {
    yield 'foo1';
    yield 'foo2';
    yield 'foo3';
}

$gen = gen();
var_dump($gen->send('something'));
953 次浏览
  • A、foo1
  • B、foo2
  • C、foo3
  • D、null
当第一次对生成器执行send方法的时候会执行一次隐形的 $gen->rewind(),然后第一个 yield 'foo1'会被忽略而直接执行第二个 yield 'foo2'
挑战成功
2年前
挑战失败
2年前
挑战成功
3年前
挑战失败
3年前
挑战失败
3年前
挑战失败
3年前

微信公众号

有课学公众号
  • 微信公众号: geekdaxue