此
if(is_object($value)) echo 'AAA';
if(gettype($value)==='object') echo 'BBB'
打印'BBB'。
具体而言,值为__PHP_Incomplete_Class Object
,这是unserialize
的结果。为什么is_object
会返回false?
答案 0 :(得分:6)
注意:
如果,此函数将返回FALSE 用于未序列化的对象 类定义不存在 (即使gettype()返回 对象)。
答案 1 :(得分:2)
正如AJ所解释的那样,该对象不是一个对象,因为它不完整。一个对象被放入_SESSION然后被尝试无法被反序列化并被唤醒,因为尚未定义对象类。如果您可以通过在启动会话之前将类包含在范围内,或者使用__autoload或spl_autoload_register作为最后的沟渠救援尝试来解决此问题。