Anonymous

An anonymous structure is a structure that usually has a name, but may also go without it. When the structure is anonymous, some features are not available, such as creating or calling a new instance by using its name. Such operations must now handled by creating the asset, and handing it across the code base.

There a several structures which have an anonymous version:

  • Functions: there are two types: closures and arrow functions

  • Method: the magic method __invoke()

  • Classes

  • Constants: basically, it is a literal value

  • Catch: in this case, the exception is caught, but it is not provided in a related variable

Some structures are always named: variables, properties, traits, interfaces, enums.

Anonymous structures should not be confused with dynamic structures: these structures are defined with a name which is stored in a variable, or a similar data container. In fact, dynamic structures often rely on a name to be usable. This is the case of variables, with $$variable.

<?php

    $closure = function () {} ;

    $arrowFunction = fn() => 1;

    'literal value';

    // an object of an anonymous class
    new class() {};

    try {}
    catch(Exception ) {}

?>

See also The Art of Being Anonymous in PHP.

Related : Anonymous Function, Anonymous Class, Anonymous Catch, Dynamic Call, __invoke() Method, Anonymous Constant, Name Conventions, Name, Structure