PHP Conference Japan 2024

is_object

(PHP 4, PHP 5, PHP 7, PHP 8)

is_object判斷變數是否為物件

說明

is_object(混合型別 $value): 布林值

判斷指定的變數是否為物件。

參數

value

要評估的變數。

回傳值

如果 value物件,則回傳 true,否則回傳 false

更新日誌

版本 說明
7.2.0 is_object() 現在對於沒有類別定義的反序列化物件(類別為 __PHP_Incomplete_Class)會回傳 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));
?>

另請參閱

新增註釋

使用者貢獻的註釋 3 則註釋

peter dot nagel at portavita dot nl
13 年前
註:is_object(null) 會回傳 false

這實際上應該包含在此頁面頂部的輸入/輸出規範中。
mark at not4you dot com
13 年前
將標準 PHP serialize() 函式回傳的資料反序列化。如果反序列化的物件不是陣列,它將被轉換為陣列,如果它回傳 __PHP_Incomplete_Class,這將特別有用。

<?php
/**
*
* @param string $data 序列化後的資料
*
* @return 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;
}
?>
monique at nijboer dot it
2 個月前
我預期這裡會用到 is_a() 函式。
如果您要測試一個物件是否為特定類型,請使用 is_a()
https://php.dev.org.tw/manual/en/function.is-a.php
To Top