class_alias

Creates an alias for a class

&reftitle.description; `bool` `class_alias` `string` `class` `string` `alias` `bool` `autoload`&true;

Creates an alias named `alias` based on the user defined class `class`. The aliased class is exactly the same as the original class.

As of PHP 8.3.0, `class_alias` also supports creating an alias of a PHP internal class.

&reftitle.parameters;

`class`

- The original class.

`alias`

- The alias name for the class.

`autoload`

- Whether to autoload if the original class is not found.

&reftitle.returnvalues;

&return.success;

&reftitle.changelog;

&Version; | &Description;
8.3.0 | `class_alias` now supports creating an alias of an internal class.

&reftitle.examples;

### `class_alias` example

    <?php

    class Foo { }

    class_alias('Foo', 'Bar');

    $a = new Foo;
    $b = new Bar;

    // the objects are the same
    var_dump($a == $b, $a === $b);
    var_dump($a instanceof $b);

    // the classes are the same
    var_dump($a instanceof Foo);
    var_dump($a instanceof Bar);

    var_dump($b instanceof Foo);
    var_dump($b instanceof Bar);

    ?>

&example.outputs;

    bool(true)
    bool(false)
    bool(true)
    bool(true)
    bool(true)
    bool(true)
    bool(true)

&reftitle.notes;

Class names are case-insensitive in PHP, and this is reflected in this function. Aliases created by `class_alias` are declared in lowercase. This means that for a class `MyClass`, the `class_alias('MyClass', 'MyClassAlias')` call will declare a new class alias named `myclassalias`.

&reftitle.seealso;

- `get_parent_class`
- `is_subclass_of`