Underscore Named Class¶
It is not possible to name a class _ underscore anymore.
This applies to classes, interfaces, traits and enumerations. It applies in every namespace.
It does not applies to functions, although that name is usually a native PHP function from the gettext extension. It also does not apply to constants, methods, class constants and variables.
It is still possible to name a class with a longer name, starting with an underscore.
The _ is being reserved for the future pattern matching feature of PHP.
PHP code¶
<?php
class _ {}
print get_class(new _);
?>
Before¶
_
After¶
PHP Deprecated: Using "_" as a class name is deprecated since 8.4
Deprecated: Using "_" as a class name is deprecated since 8.4
_
PHP version change¶
This behavior changed in 8.4