オブジェクトが指定された型のものか、部分型であるかを調べる

# 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` に指定できなくなります。 そして、クラスが存在しない場合のオートローダーの呼び出しもしなくなります。

### 戻り値

`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 "はい、\$WF は WidgetFactory です\n";
    }
    ?>

例2 instanceof 演算子の使用

    <?php
    // クラス定義
    class WidgetFactory
    {
      var $oink = 'moo';
    }

    // オブジェクトを作成します
    $WF = new WidgetFactory();

    if ($WF instanceof WidgetFactory) {
        echo 'はい、$WF は WidgetFactory です';
    }
    ?>

### 参考

- get_class() - オブジェクトのクラス名を返す
- get_parent_class() - オブジェクトの親クラスの名前を取得する
- is_subclass_of() - あるオブジェクトが指定したクラスのサブクラスに属するか (あるいは指定したインターフェイスを実装しているか) どうかを調べる

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