学习PHP的生成器,测试了一些特性。代码如下:
function gen(){ ???$name = (yield ‘hello‘); ???$nickname = (yield ‘world‘); ???yield ‘!!!‘; ???echo $name; ???echo ‘---‘.$nickname;}$gen = gen();echo $gen->key(),‘:‘,$gen->current();//0:helloecho $gen->key(),‘:‘,$gen->current();//0:helloecho $gen->key(),‘:‘,$gen->send(‘jack‘);//0:worldecho $gen->key(),‘:‘,$gen->current();//1:worldecho $gen->key(),‘:‘,$gen->send(‘mysic‘);//!!!echo $gen->key(),‘:‘,$gen->current();//!!!echo $gen->key();//2echo $gen->current();//!!!echo $gen->next();//jack---mysicecho (int)$gen->valid();//0 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????echo $gen->key();//nullecho $gen->send(‘haha‘);//nullecho $gen->key();//null echo $gen->current();//nullecho $gen->next();//null
PHP协程实现过程详解
记录PHP生成器的一些特性
原文地址:http://www.cnblogs.com/mysic/p/7638747.html