オブジェクトがこのクラスのものであるか、このクラスをその親クラスのひとつとしているかどうかを調べる

# is_a

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

is_a — オブジェクトがこのクラスのものであるか、このクラスをその親クラスのひとつとしているかどうかを調べる

### 説明

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

指定した `object` がこのクラスのものであるか、 あるいはこのクラスをその親クラスのひとつとしているかどうかを調べます。

### パラメータ

`object`

  調べたいオブジェクト。

`class_name`

  クラス名。

`allow_string`

  このパラメータを `FALSE` にすると、 クラス名を表す文字列を `object` に指定できなくなります。 そして、クラスが存在しない場合のオートローダーの呼び出しもしなくなります。

### 返り値

オブジェクトがこのクラスのものであるか、 あるいはこのクラスをその親クラスのひとつとしている場合に `TRUE`、それ以外の場合に `FALSE` を返します。

### 変更履歴

バージョン | 説明
--- | ---
5.3.9 | パラメータ `allow_string` が追加されました。
5.3.0 | この関数は非推奨ではなくなりました。そのため `E_STRICT` も発生しなくなりました。
5.0.0 | この関数は非推奨となり、かわりに instanceof 演算子の使用が推奨されるようになりました。この関数をコールすると `E_STRICT` が発生します。

### 例

例1 is_a() の例

`<?php
// クラス定義
class WidgetFactory
{
var $oink = 'moo';
}
// オブジェクトを作成します
$WF = new WidgetFactory();
if (is_a($WF, 'WidgetFactory')) {
echo "はい、\$WF は WidgetFactory です\n";
}
?>`

例2 PHP 5 での instanceof 演算子の使用

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

### 参考

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