if(is_object($value)) echo 'AAA';
if(gettype($value)==='object') echo 'BBB'
打印 'BBB'。
具體而言,值是__PHP_Incomplete_Class Object
,這是unserialize
的結果。爲什麼is_object
會返回false?
if(is_object($value)) echo 'AAA';
if(gettype($value)==='object') echo 'BBB'
打印 'BBB'。
具體而言,值是__PHP_Incomplete_Class Object
,這是unserialize
的結果。爲什麼is_object
會返回false?
注:
該函數將返回FALSE,如果一個非系列化的對象上使用 其中 類定義不存在 (即使getType()返回 對象) 。
正如AJ解釋的那樣,該對象不是一個對象,因爲它不完整。一個對象被放入_SESSION中,後來嘗試未被反序列化並被喚醒,因爲對象類尚未被定義。如果可以通過在開始會話之前將該類包括到範圍中來解決此問題,或者通過使用__autoload或spl_autoload_register作爲最後一次溝渠搶救嘗試來解決此問題。
那麼這只是愚蠢的...所以,現在我應該做'gettype($ value)==='object'',即使那些相同的文檔特別推薦它? – mpen 2011-05-18 16:53:54
如果我正確理解文檔,請確保在反序列化之前對象的類定義已存在。 – 2011-05-18 16:58:37