Generator::send
値をジェネレータに送る
説明
public mixed Generator::send(mixed $value
)
ジェネレータが yield
式を指していないときにこのメソッドが呼ばれると、
まずは最初の yield
式まで進めてから値を送信します。そのため、
最初のジェネレータを指すためにわざわざ
Generator::next を呼ぶ必要はありません (Python と同じです)。
パラメータ
-
value
-
ジェネレータに送り込む値。この値が、ジェネレータが現在指している yield
式の戻り値になります。
例
例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!