関数の概要
is_object 関数は、PHPで渡された変数がオブジェクトかどうかを判定するための組み込み関数です。オブジェクトであれば true を返し、それ以外の型であれば false を返します。オブジェクトかどうかを簡単に見分けたい場合に便利です。
パラメータの説明
mixed $var:判定対象となる変数。どのような型でも指定可能です。
戻り値
変数がオブジェクトの場合は true、それ以外(配列、文字列、整数などの場合)は false を返します。
使用例
基本的な使い方
<?php
$obj = new stdClass();
var_dump(is_object($obj)); // bool(true)
$str = "Hello";
var_dump(is_object($str)); // bool(false)
?>
この例では、stdClass のインスタンスである $obj はオブジェクトなので true を返します。一方、文字列 $str はオブジェクトではないので false です。
クラスのインスタンス判定
<?php
class User {
public $name = "Taro";
}
$user = new User();
if (is_object($user)) {
echo "これはオブジェクトです。";
} else {
echo "オブジェクトではありません。";
}
?>
カスタムクラスのインスタンスかどうかを判別する際も is_object は使えます。この例では「これはオブジェクトです。」と表示されます。
配列や他の型との違いをチェック
<?php
$array = [1, 2, 3];
$int = 42;
$object = new stdClass();
echo is_object($array) ? "オブジェクトです" : "オブジェクトではありません";
echo "n";
echo is_object($int) ? "オブジェクトです" : "オブジェクトではありません";
echo "n";
echo is_object($object) ? "オブジェクトです" : "オブジェクトではありません";
?>
配列や整数などの他の型は false を返し、オブジェクトである場合だけ true を返します。
関連する関数
is_array:変数が配列かどうか判定する関数is_string:変数が文字列かどうか判定する関数is_int:変数が整数かどうか判定する関数gettype:変数の型名を文字列で取得できる関数instanceof演算子:特定クラスのインスタンスかどうか判別する
まとめ
is_object はPHPで変数がオブジェクト型かどうかを簡単に判定できる重要な関数です。型によって処理を分けたい場面や、オブジェクトかどうかを安全にチェックしたい場合に役立ちます。配列や文字列など他の型判定関数と組み合わせて使うことで、堅牢なコードを書くことが可能です。初心者でも扱いやすいので、PHPの型判定の基本として覚えておくと良いでしょう。
