【问题标题】:Serialize a PHP object (Doctrine Query)序列化 PHP 对象(Doctrine Query)
【发布时间】:2010-11-11 16:08:28
【问题描述】:

我正在尝试在 Symfony 中序列化一个 Doctrine_query 对象:

var_dump(serialize($this->pager->getQuery()));

结果是:

string(2) "N;"

我做错了什么?

【问题讨论】:

  • 显而易见的问题:var_dump($this->pager->getQuery()); 给出了什么?
  • $this->pager->getQuery() 的结果为 null...所以这就是正在序列化的内容...
  • 我尝试了“print_r($this->pager->getQuery())”,我得到了一个以“Doctrine_Query Object”开头的大输出......有很多 RECURSION

标签: php serialization doctrine-query


【解决方案1】:

您不能在 PHP 中序列化 每个 对象。对象本身——通过实现Serializeable interface PHP Manual——可以保护自己不被序列化。

然后它们返回一个 NULL 值(或者不返回任何在 PHP 中为 NULL 的值)。这正是序列化字符串的内容:序列化的NULL (N;)。

甚至还有一些内置类比这更进一步。但它也适用于用户定义的类和内置类:其中一些不可用于序列化。


无法在 PHP 中序列化的内置类的一个示例是 DOMDocument,但是可以添加功能,如以下问题所示:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2012-06-22
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    相关资源
    最近更新 更多