PHP协程是通过生成器实现的,这里测试了PHP生成器的一些特性

学习PHP的生成器,测试了一些特性。代码如下:

function gen()
{
    $name = (yield 'hello');
    $nickname = (yield 'world');
    yield '!!!';
    echo $name;
    echo '---'.$nickname;
}

$gen = gen();

echo $gen->key(),':',$gen->current();//0:hello
echo $gen->key(),':',$gen->current();//0:hello
echo $gen->key(),':',$gen->send('jack');//0:world
echo $gen->key(),':',$gen->current();//1:world
echo $gen->key(),':',$gen->send('mysic');//!!!
echo $gen->key(),':',$gen->current();//!!!
echo $gen->key();//2
echo $gen->current();//!!!
echo $gen->next();//jack---mysic
echo (int)$gen->valid();//0                                                                                                                                                                      
echo $gen->key();//null
echo $gen->send('haha');//null
echo $gen->key();//null 
echo $gen->current();//null
echo $gen->next();//null

PHP协程实现过程详解 

posted @ 2017-10-08 21:51  MysticGrrrr  阅读(190)  评论(0编辑  收藏  举报