serialize()函数:将数据进行序列化。
__sleep:此方法在使用serialize()函数在对实例进行操作的时候会优先执行,然后将__sleep方法里面的返回值交给serialize()函数进行序列化操作。
unserialize():对被序列化的数据进行还原。
__wakeup:此方法需要搭配unserialize()函数进行使用,在使用unserialize()函数对类进行处理的时候,程序会检测类里是否包含__makeup魔术方法,如果有,优先执行__makeup方法,然后再执行unserialize()函数。
实例
<?php
class sleepAndWakeup{
public $array = array('php',1,'sleep','wakeup'); //创建一个数组
public function __sleep(){ //创建一个__sleep魔术方法 在使用serialize函数对对象进行数据序列的时候才会执行
return $this -> array; //返回$array属性值
}
public function __wakeup(){
echo '使用unserialize对序列化数据进行还原的时候自动执行<br>';
}
}
$sleepAndWakeup = new sleepAndWakeup();
echo $sleep = serialize($sleepAndWakeup); //输出对序列化的对象__sleep魔术方法中的返回值
echo '<hr>'; //创建一个水平线分割
echo '<pre>'; //格式化后面的文本
// 使用unserialize函数将被序列化之后的数组转换回来
print_r(unserialize($sleep)); //使用unserialize函数将已经序列化的数组转换回来并且打印出来




还没有评论,来说两句吧...