php yield 个人小解

来源:互联网 发布:数组中删除指定元素 编辑:程序博客网 时间:2024/06/10 14:58
手册关于yield 的介绍  http://php.net/manual/zh/language.generators.syntax.php手册关于 Generator 的介绍 http://php.net/manual/zh/generator.send.php

<?phpfunction xrange (){    while (1) {        $a = (yield '11'); //yield 表达式        echo $a;    }}$a = xrange();//返回一个生成器echo $a->current();//返回当前产生的值echo '<br>';$a->send('33');//向生成器中传入一个值,并且当做 yield 表达式的结果,然后继续执行生成器。echo '<br>';echo $a->current();echo '<br>';$a->send('22');echo '<br>';echo $a->current();

输出结果:

11
33
11
22
11

第一次 调用 

 $a->current();

调用   yield '11'  返回 '11'  并且在这里被 停住 此时 $a  是一个表达式

调用  

$a->send('33');
因为 $a 是一个yield 表达式,所以 $a = '33'; 所以输出33 , 由于是一个永真循环。。所以这个过程会不断运行。
个人见解,希望大牛给予指导,继续思考php的yield。

0 0
原创粉丝点击