2011-05-18 106 views

回答

6

PHP manual:

注:

该函数将返回FALSE,如果一个非系列化的对象上使用 其中 类定义不存在 (即使getType()返回 对象) 。

+0

那么这只是愚蠢的...所以,现在我应该做'gettype($ value)==='object'',即使那些相同的文档特别推荐它? – mpen 2011-05-18 16:53:54

+0

如果我正确理解文档,请确保在反序列化之前对象的类定义已存在。 – 2011-05-18 16:58:37

2

正如AJ解释的那样,该对象不是一个对象,因为它不完整。一个对象被放入_SESSION中,后来尝试未被反序列化并被唤醒,因为对象类尚未被定义。如果可以通过在开始会话之前将该类包括到范围中来解决此问题,或者通过使用__autoload或spl_autoload_register作为最后一次沟渠抢救尝试来解决此问题。

+0

这是一个JavaScript对象的序列化。遗留代码,我无法真正改变序列化的结构。另外,它并不是真的需要成为一个对象......它应该反序列化为一个关联数组。编写此代码时,不存在'json_encode/decode':\ – mpen 2011-05-18 17:02:29

+0

JavaScript? JSON?也许可以用相关信息更新你的原始问题,因为它看起来纯粹是一个PHP问题。 – 2011-05-18 17:07:29

+1

@AJ我和你现在一样困惑。 – David 2011-05-18 17:09:24

相关问题