send('Foo'); $logger->send('Bar'); } public function testGener() { $generator = function() { $ret = yield 'yield1'; Log::record($ret,Log::DEBUG); $ret = yield 'yield2'; Log::record($ret,Log::DEBUG); }; $gen = $generator(); Log::record($gen->current(),Log::DEBUG); $ret = $gen->send('ret1'); Log::record($ret,Log::DEBUG); $ret = $gen->send('ret2'); Log::record($ret,Log::DEBUG); //var_dump($gen->send('ret1')); // string(4) "ret1" (the first var_dump in gen) // string(6) "yield2" (the var_dump of the ->send() return value) // var_dump($gen->send('ret2')); // string(4) "ret2" (again from within gen) // NULL (the return value of ->send()) } }