note 52114 deleted from language.oop.serialization by danbrown

From: Date: Sat, 07 Nov 2009 19:12:55 +0000
Subject: note 52114 deleted from language.oop.serialization by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-162600@lists.php.net to get a copy of this message
Note Submitter: kendlj at NOSPAM dot web dot de ---- Was wondering, if References are also lost after serializing and deserializing in php5. Wrote a testfile and my result is: All references are restored corretly. Even if the classes where recursively referenced. Here is the code of the file: <? //check refereneces class A { public $a_var; /** * @var B */ public $parent; public function __construct($parent) { $this->parent=$parent; } } class B { /** * @var A */ public $Ref_auf_A; /** * @var A */ public $aObj; public $name=""; public function __construct($InhaltA) { $this->aObj=new A($this); $this->aObj->a_var=$InhaltA; $this->Ref_auf_A=$this->aObj; } } $B_obj = new B("Inhalt von A"); $B_obj->name="My is <defaultName>"; echo "Object B before serializing:<pre>"; print_r($B_obj); echo "</pre><br><br>"; $serB=serialize($B_obj); echo "Object B serialized: ".$serB."<br><br>"; $B_obj = unserialize($serB); echo "Object B deserializedt:<pre>"; print_r($B_obj); echo "</pre><br><br>"; $B_obj->Ref_auf_A->a_var="Test"; echo "Object A reference content changed, should have changed everywhere:<pre>"; print_r($B_obj); echo "</pre><br><br>"; //Change name of object where A parent references to. $B_obj->Ref_auf_A->parent->name="My name changed"; echo $B_obj->name; ?>

« previous php.notes (#162600) next »