当前位置:首页 > PHP > 正文内容

php生成器yield from详解

高老师6年前 (2020-02-02)PHP2462
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委托完成会返回委托迭代器的返回值

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/121.html

分享给朋友:

“php生成器yield from详解” 的相关文章

php上传大文件,php大文件上传

php上传大文件,php大文件上传

(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data">    &...

【二】PHP多进程学习-进程信号管理

【二】PHP多进程学习-进程信号管理

(1).学习目标:    了解常见信号类型(百度PHP支持的信号类型),(2).相关函数学习:    (2.1).pcntl_signal函数用于设置一个信号管理器接收进程信号,参数1:信号类型,参数2:回调函数,用于在接收到参数1类型的信...

posix_ttyname函数详解

posix_ttyname函数详解

posix_ttyname - 获取当前终端设备名称。<?php     var_dump( posix_ttyname(STDOUT) );我们启动一个终端,执行上面的代码输出:/dev/tty1我们再启动一个终端,执行上面的代码输...

 php命令行中文乱码,php cli中文乱码

php命令行中文乱码,php cli中文乱码

<?php //如果支持exec函数,可以使用的方式 exec('chcp 65001'); //如果exec函数因安全问题禁用,可以使用的方式 pclose(popen('chcp 65001', 'r'));...

php生成器的send方法详解,php yield send

php生成器的send方法详解,php yield send

【一】.基本用法首先看看官方对send方法的解释:Sets the return value of the yield expression and resumes the generato...