Ntw*_*ike 2 php yield generator
如在 php 手册中,yield 可以使用表达式的一部分。$data = (yield $value); 但它没有为 $myval 分配任何东西。我在这里做错了吗?我们如何在表达式中使用它?
function test_yield(){
for ($i=0; $i <10; $i++) {
$myval = (yield $i);
echo " \ ".$myval." / <br />";
}
}
foreach (test_yield() as $value) {
echo $value;
}
Run Code Online (Sandbox Code Playgroud)
来自 PHP rfc:generators
yield表达式的返回值是使用send(). 如果没有发送任何内容(例如在foreach迭代期间),null则返回。
你的foreach代码从来没有send()什么事到发电机,所以yield总是返回null。