3v4l.org

run code in 300+ PHP versions simultaneously
<?php $function = function (int &$foo) {}; $foo = 1; $args = [&$foo]; unset($foo); $args = [...$args]; # OK // $function(...$args); // if it is uncommented, then code below will not throw warnings # WARNING (new ReflectionFunction($function))->invokeArgs($args); # WARNING call_user_func_array($function, $args);
Output for 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Warning: {closure:/in/34QmH:3}(): Argument #1 ($foo) must be passed by reference, value given in /in/34QmH on line 15 Warning: {closure:/in/34QmH:3}(): Argument #1 ($foo) must be passed by reference, value given in /in/34QmH on line 18
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30
Warning: {closure}(): Argument #1 ($foo) must be passed by reference, value given in /in/34QmH on line 15 Warning: {closure}(): Argument #1 ($foo) must be passed by reference, value given in /in/34QmH on line 18
Output for 7.4.0 - 7.4.33
Warning: Parameter 1 to {closure}() expected to be a reference, value given in /in/34QmH on line 15 Warning: Parameter 1 to {closure}() expected to be a reference, value given in /in/34QmH on line 18
Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33
Parse error: syntax error, unexpected '...' (T_ELLIPSIS), expecting ']' in /in/34QmH on line 9
Process exited with code 255.

preferences:
112.29 ms | 1524 KiB | 4 Q