检查对象是否属于一个给定的类型或子类型。

# is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_a — 检查对象是否属于一个给定的类型或子类型。

### 说明

function is_a(mixed `$object_or_class`, string `$class`, bool `$allow_string` = `false`): bool

确定指定 `object_or_class` 是否是 `class` 对象类型，或者是否将 `class` 作为其中一个超类（父类）。

### 参数

`object_or_class`

  类名或者实例对象。

`class`

  类名或接口名。

`allow_string`

  如果本参数设置为 `false`，`object_or_class` 就不允许传入字符串类名。 这也会在类不存在时，阻止调用自动加载器（autoloader）。

### 返回值

如果 `object_or_class` 是 `class` 对象类型，或者 `class` 是其中一个超类（父类），则返回 `true`，否则返回 `false`。

### 示例

示例 #1 is_a() 示例

    <?php
    // 定义类
    class WidgetFactory
    {
      var $oink = 'moo';
    }

    // 创建新对象
    $WF = new WidgetFactory();

    if (is_a($WF, 'WidgetFactory')) {
      echo "yes, \$WF is still a WidgetFactory\n";
    }
    ?>

示例 #2 使用 instanceof 运算符

    <?php
    // define a class
    class WidgetFactory
    {
      var $oink = 'moo';
    }

    // create a new object
    $WF = new WidgetFactory();

    if ($WF instanceof WidgetFactory) {
        echo 'Yes, $WF is a WidgetFactory';
    }
    ?>

### 参见

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

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