为类创建别名

# class_alias

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

class_alias — 为类创建别名

### 说明

function class_alias(string `$class`, string `$alias`, bool `$autoload` = `true`): bool

基于用户定义的类 `class` 创建别名 `alias`。 这个别名类和原有的类完全相同。

> 注意: 自 PHP 8.3.0 起，class_alias() 也支持创建 PHP 内部类的别名。

### 参数

`class`

  原有的类。

`alias`

  类的别名。

`autoload`

  如果原始类没有加载，是否使用自动加载。

### 返回值

成功时返回 `true`， 或者在失败时返回 `false`。

### 更新日志

版本 | 说明
--- | ---
8.3.0 | class_alias() 现在支持创建内部类的别名。

### 示例

示例 #1 class_alias() 示例

    <?php

    class Foo { }

    class_alias('Foo', 'Bar');

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

    // 对象是相同的
    var_dump($a == $b, $a === $b);
    var_dump($a instanceof $b);

    // 类是相同的
    var_dump($a instanceof Foo);
    var_dump($a instanceof Bar);

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

    ?>

以上示例会输出：

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

### 注释

> 注意:

> 类名在 PHP 中不区分大小写，这一点也反映在此函数中。由 class_alias() 创建的别名声明为小写。这意味着对于 `MyClass` 类，调用 `class_alias('MyClass', 'MyClassAlias')` 将声明名为 `myclassalias` 的新的类别名。

### 参见

- get_parent_class() - 检索对象或者类的父级类名
- is_subclass_of() - 检查对象是否继承或者实现（implement）此类

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open