<?php
function gen() {
// TODO: HHVM currently does not support yield from (or yield) as
// expressions. As such, this test had to be slightly modified.
// The original line was:
// var_dump(yield from gen($a + 1));
//$b = yield from gen($a + 1);
yield 1;
yield 2;
var_dump('in the middle of gen');
yield 3;
yield 4;
}
function bar($gen) {
// TODO: HHVM currently does not support yield from (or yield) as
// expressions. As such, this test had to be slightly modified.
// The original line was:
// var_dump(yield from gen($a + 1));
yield from $gen;
}
/* Twice a Generator from bar() using yield from on $gen */
$gen = gen();
$gens[] = bar($gen);
$gens[] = bar($gen);
do {
foreach ($gens as $g) {
var_dump($g->current());
$g->next();
}
} while($gens[0]->valid());
var_dump($gens[1]->valid());
int(1)
int(2)
string(20) "in the middle of gen"
int(3)
int(4)
int(4)
NULL
bool(false)
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
int(1)
int(2)
string(20) "in the middle of gen"
int(3)
int(4)
int(4)
NULL
bool(false)
Output for 7.0.0
int(1)
int(2)
string(20) "in the middle of gen"
int(3)
int(4)
bool(false)
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Parse error: syntax error, unexpected '$gen' (T_VARIABLE) in /in/MsXZA on line 21
Process exited with code 255.