学习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