1--TEST-- 2ReflectionGenerator::isClosed: ->valid() terminates an empty generator. 3--FILE-- 4<?php 5 6function empty_generator() { 7 return; 8 yield; 9} 10 11$gens = [ 12 (function() { 13 yield; 14 })(), 15 empty_generator(), 16]; 17 18foreach ($gens as $gen) { 19 $ref = new ReflectionGenerator($gen); 20 var_dump($ref->isClosed()); 21 var_dump($gen->valid()); 22 var_dump($ref->isClosed()); 23 try { 24 var_dump($ref->getExecutingLine()); 25 } catch (\Exception $e) { 26 echo $e->getMessage(), PHP_EOL; 27 } 28 29 echo PHP_EOL; 30} 31 32?> 33--EXPECT-- 34bool(false) 35bool(true) 36bool(false) 37int(10) 38 39bool(false) 40bool(false) 41bool(true) 42Cannot fetch information from a closed Generator 43