PHP面向对象之对象串行化和反串行化

对象也是一种在内存中存储的数据类型,它的寿命通常随着生成该对象的程序的终止而终止,有时候,可能需要将对象的状态保存下来,需要时再将对象恢复。对象通过写出

描述自己状态的数值来记录自己,这个过程称对象的串行化:serialize()。串行化就是把整个对象转化为二进制字符串。另一个是反串行化:unserilize(),就是把对象串行化后转化的二进制字符串在转化为对象。

<?php
	class Person{
		private $name;
		private $age;
		private $sex;
		
		public function __construct($name,$age,$sex){
			$this->name=$name;
			$this->age=$age;
			$this->sex=$sex;
		}
		
		public function speek(){
			echo 'my name is '.$this->name.'--'.$this->sex.'--'.$this->age.'<br/>';
		}
	}
?>

<?php
	header('content-type:text/html;charset=utf-8');
	require('Person.class.php');
	
	$per=new Person("tony",22,"male");
	//对象串行化
	$per_serialize=serialize($per);
	echo $per_serialize."<br/>";//输出:O:6:"Person":3:{s:12:"Personname";s:4:"tony";s:11:"Personage";i:22;s:11:"Personsex";s:4:"male";}
	//将串行化得到的字符串保存到obj.txt中可以实现持久化
	file_put_contents("obj.txt",$per_serialize);
	
	//反串行化
	$per_unserialize=file_get_contents("obj.txt");
	$per2=unserialize($per_unserialize);
	$per2->speek();
	//输出:my name is tony--male--22
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值