3v4l.org

run code in 300+ PHP versions simultaneously
<?php class foo { public function __call($name, $args) { switch ($name) { case 'a': switch (count($args)) { case 0: return call_user_func_array(array($this, 'a'), $args); break; case 1: return call_user_func_array(array($this, 'ab'), $args); break; } } } public function a() { return 'a called'; } public function ab($a) { return 'a with paramter called'; } } print_r((new foo)->a(2));

preferences:
58.93 ms | 402 KiB | 5 Q