Controlling anonymous class usage
Anonymous classes, by their very definition, do not have a name. However, for the purposes of information, PHP informational functions such as var_dump()
, var_export()
, get_class()
, and other classes in the Reflection extension will report the anonymous class simply as class@anonymous
. However, when an anonymous class extends another class or implements an interface, it might be of some use to have PHP informational functions reflect this fact.
In PHP 8, anonymous classes that extend a class or implement an interface now reflect that fact by changing the label that's assigned to the anonymous class to Xyz@anonymous
, where Xyz
is the name of the class or interface. If the anonymous class implements more than one interface, only the first interface will appear. If the anonymous class extends a class and also implements one or more interfaces, the name of the class it extends will appear in its label. The following table summarizes these possibilities...