(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Generator::send — 向生成器中傳入一個(gè)值
向生成器中傳入一個(gè)值,并且當做 yield 表達式的結果,然后繼續執行生成器。
如果當這個(gè)方法被調用時(shí),生成器不在 yield 表達式,那么在傳入值之前,它會(huì )先運行到第一個(gè) yield 表達式。 因此沒(méi)有必要調用 Generator::next() 讓 PHP 生成器 “準備”(就像是 Python 那樣做)。
value
傳入生成器的值。這個(gè)值將會(huì )被作為生成器當前所在的 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!');
?>
以上例程會(huì )輸出:
I'm printer! Hello world! Bye world!