php5中有三个魔方方法:
_sleep() 可以控制对象序列化时真正处理的部分
_wakeup() 在反序列化后还原对象属性
_toString() 对象转换成为字符串的机制
把php变量转换成一串编码后字符串,方法为serialize() 反序列化unserialize()
//序列化
class testSerialize{
public $a = 10;
public $b = 15;
public $c = 20;
function _construct(){
$this->b = $this->a * 10;
$this->c = $this->b * 2;
}
}
$k = serialize(new testSerialize());
echo $k;//
out: O:13:"testSerialize":3:{s:1:"a";i:10;s:1:"b";i:15;s:1:"c";i:20;}
$j = unserialize($k);
sleep方法:
class testSerialize1{
public $a = 10;
public $b = 15;
public $c = 20;
function _construct(){
$this->b = $this->a * 10;
$this->c = $this->b * 2;
}
function __sleep(){
return $this->a;
}
}
$k = serialize(new testSerialize1());
echo $k;
其他方法同理