<?php
function generate_ints($n){
foreach ( range(0,$n) as $number) {
$number = (yield $number);
yield $number;
}
}
$gen = generate_ints(5);
// iterable object can be used in foreach
foreach ($gen as $g) {
echo $g;
if ($g == 4) {
$g->send("\n999\n"); // injecting a value
echo $g;
}
}
01234
Fatal error: Uncaught Error: Call to a member function send() on int in /in/YjHRb:15
Stack trace:
#0 {main}
thrown in /in/YjHRb on line 15
Process exited with code 255.
01234
Fatal error: Uncaught Error: Call to a member function send() on integer in /in/YjHRb:15
Stack trace:
#0 {main}
thrown in /in/YjHRb on line 15
Process exited with code 255.
Output for 5.6.0 - 5.6.40
01234
Fatal error: Call to a member function send() on integer in /in/YjHRb on line 15
Process exited with code 255.
Output for 5.5.0 - 5.5.38
01234
Fatal error: Call to a member function send() on a non-object in /in/YjHRb on line 15
Process exited with code 255.
Output for 5.4.0 - 5.4.45
Parse error: syntax error, unexpected '$number' (T_VARIABLE) in /in/YjHRb on line 4
Process exited with code 255.