Note: is_object(null) returns false
This should actually be part of the input/output specification at the top of this page.
(PHP 4, PHP 5, PHP 7, PHP 8)
is_object — 変数がオブジェクトかどうかを検査する
value
評価する変数。
バージョン | 説明 |
---|---|
7.2.0 |
クラス定義が存在せず (__PHP_Incomplete_Class クラス)、
かつシリアライズされていないオブジェクトに対して、
is_object() 関数は true を返すようになりました。
これより前のバージョンでは、false を返していました。
|
例1 is_object() の例
<?php
// オブジェクトから配列を返す
// シンプルな関数を宣言します
function get_students($obj)
{
if (!is_object($obj)) {
return false;
}
return $obj->students;
}
// 新しいクラスのインスタンスを宣言し、
// 値を設定します
$obj = new stdClass();
$obj->students = array('Kalle', 'Ross', 'Felipe');
var_dump(get_students(null));
var_dump(get_students($obj));
?>
Note: is_object(null) returns false
This should actually be part of the input/output specification at the top of this page.
Unserializes data as returned by the standard PHP serialize() function. If the unserialized object is not an array, it will be converted to one, particularily useful if it returns a __PHP_Incomplete_Class.
<?php
/**
*
* @param string $data Serialized data
*
* @return array Unserialized array
*/
function unserialize2array($data) {
$obj = unserialize($data);
if(is_array($obj)) return $obj;
$arr = array();
foreach($obj as $k=>$v) {
$arr[$k] = $v;
}
unset($arr['__PHP_Incomplete_Class_Name']);
return $arr;
}
?>
I would expect a reference to is_a() function here.
if you would test if an object is of an specific type use is_a()
https://www.php.net/manual/en/function.is-a.php