3v4l.org

run code in 300+ PHP versions simultaneously
<?php class MyClass { public function myMethod($foo) { $reflection = new ReflectionMethod(__CLASS__, __FUNCTION__); $arg_names = []; foreach ($reflection->getParameters() as $parameter) { $arg_names[] = $parameter->name; } if (!in_array('args', $arg_names)) { echo "This is where the deprecation message would be set"; $args = func_get_args(); unset($args[0]); } echo $foo . "\n"; print_r($args); } } class ChildClass extends MyClass { public function myMethod($foo, ...$args) { $reflection = new ReflectionMethod(__CLASS__, __FUNCTION__); $arg_names = []; foreach ($reflection->getParameters() as $parameter) { $arg_names[] = $parameter->name; } if (!in_array('args', $arg_names)) { echo "This is where the deprecation message would be set"; $args = func_get_args(); unset($args[0]); } echo $foo . "\n"; print_r($args); } } $myClass = new MyClass(); $myClass->myMethod("Hi", "here", "are","some", "args"); echo "\n"; $childClass = new ChildClass(); $childClass->myMethod("Hi", "here", "are","some", "args");
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
This is where the deprecation message would be setHi Array ( [1] => here [2] => are [3] => some [4] => args ) Hi Array ( [0] => here [1] => are [2] => some [3] => args )

preferences:
65.08 ms | 403 KiB | 94 Q