Generator::send
Generator::send
(PHP 5 >= 5.5.0, PHP 7)
Generator :: send - 将值发送到生成器
描述
public mixed Generator::send ( mixed $value )
作为当前良率表达式的结果,将给定值发送给生成器,并恢复生成器的执行。
如果在调用此方法时生成器不处于yield表达式,那么在发送该值之前,将首先让它前进到第一个yield表达式。因此,没有必要使用Generator :: next()调用来“启动”PHP生成器(就像在Python中完成的那样)。
参数
value
值发送到生成器。该值将是生成器当前所处的yield表达式的返回值。
返回值
返回已产生的值。
例子
Example#1使用Generator :: send()来注入值
<?php
function printer() {
echo "I'm printer!".PHP_EOL;
while (true) {
$string = yield;
echo $string.PHP_EOL;
}
}
$printer = printer(
$printer->send('Hello world!'
$printer->send('Bye world!'
?>
上面的例子将输出:
I'm printer!
Hello world!
Bye world!
← Generator::rewind
Generator::throw →