yield的简单用法

来源:互联网 发布:应用备份软件 编辑:程序博客网 时间:2024/05/29 15:20
<?php//print_r(range(2,100));$gg=array();//1.yield应用1function xrange(){for($i=0;$i<100;$i++){yield $i;}}foreach(xrange() as $v){echo 'begin';echo $v;echo 'next<br>\n';}//2.yield应用2=》协程(双向通信)function logg(){global $gg;while(true){//加这句表示监听$gg[]=yield;//这里yield是作为接收者的}}$logg=logg();$logg->send('aaa');$logg->send('bbb');print_r($gg);//3.yield应用3=>yield同时作为接收者和发送者=》协程(双向通信)function gen() {    $ret = (yield 'yield1');    var_dump($ret);    $ret = (yield 'yield2');    var_dump($ret);} $gen = gen();var_dump($gen->current());    // string(6) "yield1"var_dump($gen->send('ret1')); // string(4) "ret1"   (the first var_dump in gen)                              // string(6) "yield2" (the var_dump of the ->send() return value)var_dump($gen->send('ret2'));

原创粉丝点击