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'); }

preferences:
26.62 ms | 402 KiB | 5 Q