3v4l.org

run code in 300+ PHP versions simultaneously
<?php function foo(&$a, $b) { $a = 'modified'; $b = 'modified'; } class C { function foo(&$a, $b) { $a = 'modified'; $b = 'modified'; } } class S { static function foo(&$a, $b) { $a = 'modified'; $b = 'modified'; } } $vv["'foo'"] = 'foo'; $vv["['S', 'foo']"] = ['S', 'foo']; $vv["[new C, 'foo']"] = [new C, 'foo']; $vv["function(..){..}"] = function(&$a, $b) { $a = 'modified'; $b = 'modified'; }; $vv["'S::foo'"] = 'S::foo'; foreach ($vv as $label => $v) { print $label; print is_callable($v) ? 'is callable' : 'is not callable'; print "\n"; $a = 'orig'; $b = 'orig'; call_user_func_array($v, array(&$a, &$b)); assert($a === 'modified'); assert($b === 'orig'); $a = 'orig'; $b = 'orig'; $v($a, $b); assert($a === 'modified'); assert($b === 'orig'); }
Output for 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
'foo'is callable ['S', 'foo']is callable [new C, 'foo']is callable function(..){..}is callable 'S::foo'is callable
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.40
'foo'is callable ['S', 'foo']is callable [new C, 'foo']is callable function(..){..}is callable 'S::foo'is callable Fatal error: Call to undefined function S::foo() in /in/KFAGV on line 44
Process exited with code 255.

preferences:
183.71 ms | 402 KiB | 329 Q