@ 2022-12-23T21:26:51Z <?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");
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.0.1 - 8.0.30 , 8.1.0 - 8.1.31 , 8.2.0 - 8.2.26 , 8.3.0 - 8.3.14 , 8.4.1 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:dark mode live preview
85.82 ms | 406 KiB | 5 Q