php標準ライブラリのシーケンス化
1047 ワード
<?php
error_reporting(E_ALL);
class Base implements Serializable{
private $baseVar;
public function __construct(){
$this->baseVar = 'foo';
}
public function serialize(){
return serialize($this->baseVar);
}
public function unserialize($serialized){
$this->baseVar = unserialize($serialized);
}
}
class Extender extends Base{
private $extendVar;
public function __construct(){
$this->extendVar = 'bar';
}
public function serialize(){
$baseSerialized = parent::serialize();
return serialize(array($this->extendVar,$baseSerialized));
}
public function unserialize($serialized){
$tmp = unserialize($serialized);
$this->extendVar = $tmp[0];
parent::unserialize($tmp[1]);
}
}
$instance = new Extender();
$serialized = serialize($instance);
$restored = unserialize($serialized);
?>