Generator::send
Send a value to the generator
Description
public mixed Generator::send(mixed $value
)
If the generator is not at a yield
expression when this method is called, it
will first be let to advance to the first yield
expression before sending the
value. As such it is not necessary to "prime" PHP generators with a
Generator::next call (like it is done in Python).
Parameters
-
value
-
Value to send into the generator. This value will be the return value of the
yield
expression the generator is currently at.
Return Values
Returns the yielded value.
Examples
Example #1 Using Generator::send to inject values
<?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!');
?>
The above example will output:
I'm printer!
Hello world!
Bye world!