- unserialize: documentation ( source)
- serialize: documentation ( source)
- str_replace: documentation ( source)
<?php
class c1 {
public $a = 1;
public $b = 2;
}
class c2 implements Serializable {
public $a = 1;
public $b = 2;
public function serialize() { return 's:1:"a";i:1;s:1:"b";i:2;'; }
public function unserialize($str) { $this->a = 3; }
public function __wakeup() {
echo $this->a;
}
}
$o1 = new c1;
$o2 = new c2;
echo $o_str = serialize($o1) . "\n";
echo $c_str = serialize($o2) . "\n";
$o_str = str_replace($o_str, "c1", "c2");
$o1 = unserialize($o_str);
$o2 = unserialize($c_str);