php笔记(10)序列化

对象的序列化serialize()和反序列化unserialize()

class Demo{
	public $name;
	public $age;
	public $sex;
	public function __construct($name,$age,$sex){
		$this->name=$name;
		$this->age=$age;
		$this->sex=$sex;
	}
	//将允许序列化的属性放到数组里返回
	public function __sleep(){
		return ['name','age'];
	}
        //反序列化的时候执行的方法
        public function __wakeup(){
            $this->age=30;
        }
}

$demo1=new Demo('小明',20,'男');
//序列化前的对象
echo '我的名字是:'.$demo1->name.',年龄:'.$demo1->age.',性别是:'.$demo1->sex;//我的名字是:小明,年龄:20,性别是:男

//序列化对象
$newDemo1=serialize($demo1);
echo $newDemo1;//__sleep()只允许name和age序列化,所以没有sex
//O:4:"Demo":2:{s:4:"name";s:6:"小明";s:3:"age";i:20;}

//反序列化
$newDemo2=unserialize($newDemo1);//__wakeup()方法改变了age的值
echo '我的名字是:'.$newDemo2->name.',年龄:'.$newDemo2->age;//我的名字是:小明,年龄:30

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值