# is_a

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

is_a — 如果对象属于该类或该类是此对象的父类则返回 `TRUE`

### 说明

is_a ( object `$object` , string `$class_name` [, bool `$allow_string` = `FALSE` ] ) : bool

如果 `object` 是该类或该类是此对象的父类。

### 参数

`object`

  The tested object

`class_name`

  The class name

`allow_string`

  If this parameter set to `FALSE`, string class name as `object` is not allowed. This also prevents from calling autoloader if the class doesn't exist.

### 返回值

Returns `TRUE` if the object is of this class or has this class as one of its parents, `FALSE` otherwise.

### 更新日志

版本 | 说明
--- | ---
5.3.9 | Added `allow_string` parameter
5.3.0 | This function is no longer deprecated, and will therefore no longer throw `E_STRICT` warnings.
5.0.0 | This function became deprecated in favour of the instanceof operator. Calling this function will result in an `E_STRICT` warning.

### 范例

Example #1 is_a() 例子

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

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

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

Example #2 在 PHP 5 中使用 instanceof 运算符

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

### 参见

- get_class() - 返回对象的类名
- get_parent_class() - 返回对象或类的父类名
- is_subclass_of() - 如果此对象是该类的子类，则返回 TRUE