1--TEST-- 2When performing a dynamic call to a ret-by-ref function, the reference should be unwrapped 3--FILE-- 4<?php 5 6namespace Foo; 7 8function &retRef($x) { 9 return $x; 10} 11 12var_dump(call_user_func('Foo\retRef', 42)); 13var_dump(call_user_func_array('Foo\retRef', [42])); 14 15$closure = function &($x) { 16 return $x; 17}; 18var_dump($closure->call(new class {}, 42)); 19 20var_dump((new \ReflectionFunction('Foo\retRef'))->invoke(42)); 21var_dump((new \ReflectionFunction('Foo\retRef'))->invokeArgs([42])); 22 23class Bar { 24 function &method($x) { 25 return $x; 26 } 27} 28var_dump((new \ReflectionMethod('Foo\Bar', 'method'))->invoke(new Bar, 42)); 29var_dump((new \ReflectionMethod('Foo\Bar', 'method'))->invokeArgs(new Bar, [42])); 30 31?> 32--EXPECT-- 33int(42) 34int(42) 35int(42) 36int(42) 37int(42) 38int(42) 39int(42) 40