php yield 个人小解
手册关于yield 的介绍 http://php.net/manual/zh/language.generators.syntax.php
手册关于 Generator 的介绍 http://php.net/manual/zh/generator.send.php
33
11
22
11
<?php function 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();
输出结果:
1133
11
22
11
第一次 调用
$a->current();
调用 yield "11" 返回 "11" 并且在这里被 停住 此时 $a 是一个表达式
调用
$a->send("33");
因为 $a 是一个yield 表达式,所以 $a = "33"; 所以输出33 , 由于是一个永真循环。。所以这个过程会不断运行。
个人见解,希望大牛给予指导,继续思考php的yield。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 给网页添加网站的logo(icon图标)
- 下一篇: 一夜身价暴涨千倍,程序员如何发布自己的 ICO?