1--TEST-- 2Test different types of generator return values (VM operands) 3--FILE-- 4<?php 5 6function gen1() { 7 return; // CONST 8 yield; 9} 10 11$gen = gen1(); 12var_dump($gen->getReturn()); 13 14function gen2() { 15 return "str"; // CONST 16 yield; 17} 18 19$gen = gen2(); 20var_dump($gen->getReturn()); 21 22function gen3($var) { 23 return $var; // CV 24 yield; 25} 26 27$gen = gen3([1, 2, 3]); 28var_dump($gen->getReturn()); 29 30function gen4($obj) { 31 return $obj->prop; // VAR 32 yield; 33} 34 35$gen = gen4((object) ['prop' => 321]); 36var_dump($gen->getReturn()); 37 38function gen5($val) { 39 return (int) $val; // TMP 40 yield; 41} 42 43$gen = gen5("42"); 44var_dump($gen->getReturn()); 45 46?> 47--EXPECT-- 48NULL 49string(3) "str" 50array(3) { 51 [0]=> 52 int(1) 53 [1]=> 54 int(2) 55 [2]=> 56 int(3) 57} 58int(321) 59int(42) 60