- unserialize: documentation ( source)
- serialize: documentation ( source)
<?php
class D
{
}
class E extends D
{
public $D;
}
class F extends D
{
public $D;
public $E;
}
class A implements Serializable
{
public function serialize ()
{
$serialized = array();
foreach($this as $prop => $val) {
$serialized[$prop] = $val;
}
return serialize($serialized);
//return serialize(get_object_vars($this));
}
function unserialize($serialized)
{
foreach(unserialize($serialized) as $prop => $val) {
$this->$prop = $val;
}
return true;
}
}
class B extends A
{
public $A;
}
class C extends A
{
public $A;
public $B;
}
$oC = new C();
$oC->A = new A();
$oC->B = new B();
$oC->B->A = $oC->A;
$oF = new F();
$oF->D = new D();
$oF->E = new E();
$oF->E->D = $oF->D;
$ser = serialize($oC);
echo $ser, "\n";
$ser = serialize($oF);
echo $ser, "\n";