PHP在序列化之前删除对象引用,在序列化之后恢复

PHP在序列化之前删除对象引用,在序列化之后恢复,php,serialization,object-serialization,Php,Serialization,Object Serialization,我想在磁盘上缓存一些对象。我在这个过程中使用serialize。这些对象包含对其他对象的一些引用。我不希望在其他地方也进行序列化,因为在取消序列化时,会给我相同真实对象的重复实例 有没有一种方法可以将对象引用更改为引用相同对象的字符串,但在序列化之前按ID进行,并在序列化之后将其更改回字符串,并且在类代码中执行此操作,而不是在unserialize语句之前和之后执行 好: 坏的: 自我提示:首先检查文档 自我提示:首先检查文档 对。看看是的。看一看我想你在寻找睡眠和醒来 我想你在寻找睡眠和醒来

我想在磁盘上缓存一些对象。我在这个过程中使用serialize。这些对象包含对其他对象的一些引用。我不希望在其他地方也进行序列化,因为在取消序列化时,会给我相同真实对象的重复实例

有没有一种方法可以将对象引用更改为引用相同对象的字符串,但在序列化之前按ID进行,并在序列化之后将其更改回字符串,并且在类代码中执行此操作,而不是在unserialize语句之前和之后执行

好:

坏的:


自我提示:首先检查文档


自我提示:首先检查文档


对。看看

是的。看一看

我想你在寻找睡眠和醒来


我想你在寻找睡眠和醒来

class TheStuff {
 private $otherThing;
 private function __yeahDudeDoThisOnSerialize() {
  $this->otherThing = $this->otherThing->name;
 }
 private function __viceVersa() {
  $this->otherThing = get_thing_by_name($this->otherThing);
 }
}

serialize($someStuff);
class TheStuff {
 private $otherThing;
 public function yeahDudeDoThisOnSerialize() {
  $this->otherThing = $this->otherThing->name;
 }
 public function viceVersa() {
  $this->otherThing = get_thing_by_name($this->otherThing);
 }
}

$someStuff->yeahDudeDoThisOnSerialize();
serialize($someStuff);
$someStuff->viceVersa();