【问题标题】:PHP Complete Object Graph not stored in SessionPHP完整对象图未存储在会话中
【发布时间】:2009-11-20 11:00:03
【问题描述】:

我已经阅读了有关堆栈溢出问题的其他帖子,但我的问题有点不同..

在 Session 中存储对象时,PHP 是否将 Complete Object Graph 保存在 Session 中?

在从会话中读取对象后,我在访问对象的某些属性时遇到问题。

我存储的对象具有复杂的类型属性,其中一些是从其他类继承的类的对象,因此在将对象存储到会话中之前对其进行序列化可能有点“昂贵”。

我在会话中缺少对象及其存储。有限制吗?

谢谢。

【问题讨论】:

  • 一个明显的限制是:“某些类型的数据不能被序列化,因此存储在会话中。它包括资源变量或具有循环引用的对象(即将对自身的引用传递给另一个对象的对象)。 " (php.net/manual/en/intro.session.php)

标签: serialization php


【解决方案1】:

复杂的对象图可以很好地序列化。甚至循环引用也可以序列化。但是,您不能序列化资源以及某些内置对象类型。一般来说,序列化是一项非常昂贵的操作。您不应该依赖它作为共享内存策略。

【讨论】:

    猜你喜欢
    • 2017-12-06
    • 2012-01-26
    • 2011-01-03
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多