Relative Callable In Strings¶
PHP has a syntax to designate a method, with its class and method name. That syntax used to support relative class names, such as self, parent and static. That allowed the definition of callable that would be relative to their point of execution, and not their point of definition. This is a gone feature in PHP 8.2.
PHP code¶
<?php
class x {
function a() {
print __METHOD__;
}
function b() {
call_user_func('self::a');
}
}
(new x)->b();
?>
Before¶
x::a
After¶
PHP Deprecated: Use of "self" in callables is deprecated in /codes/relativeCallable.php on line 9
Deprecated: Use of "self" in callables is deprecated in /codes/relativeCallable.php on line 9
x::a
PHP version change¶
This behavior was deprecated in 8.2
This behavior changed in 9.0