雑多なブログ

音楽や語学、プログラム関連の話題について書いています

php の is_a() 関数

is_a() 関数は、オブジェクトがクラスのものかを判定する。
演算子 "instanceof" でも同じ判定ができる。

is_a()の例

class Test {}
$obj = new Test();
var_dump(is_a($obj, 'Test'));

instanceofの例

class Test {}
$obj = new Test();
var_dump($obj instanceof TestClass);

ところでこの関数、一度非推奨とされていたものの、その後再び非推奨ではなくなったようだ。
更新履歴がややこしい内容だったので、最初読んだときに混乱してしまった。

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