php生成器yield from详解
PHP7中,通过生成器委托(yield from),可以将其他生成器、可迭代的对象、数组委托给外层生成器。外层的生成器会先顺序 yield 委托出来的值,然后继续 yield 本身中定义的值。同时yield from也能获取到生成器的返回值,
和生成器的getReturn方法作用同等,需要注意这里仅仅指的是获取返回值是同等的。

yield from 方便我们编写比较清晰生成器嵌套

<?php

function G1()
{
    $i = 3;
    while ($i--)
    {
        var_dump($i);
        yield $i;
    }

    return 110;
}

function G2()
{
    $return = yield from G1();
    var_dump($return);
}

foreach (G2() as $item)
{

}

上面的代码将G1生成器的迭代委托给了G2,G2需要先顺序迭代G1,然后再继续yield本身,通过yield from委托完成会返回委托迭代器的返回值

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top