PHP对象的串行化与反串行化

什么时候使用串行化?
在网络中传输对象的时候

向数据库中保存文件的时候

 

今天我们要提到四个函数

全部串行化

1.serialize(对象名将指定的类对象串行化  $str=serialize($per)  //per对象串行化,结果返回给$str

2.unserialize(串行化后的返回值返回结果是对象    $per=unserialize($str);

局部串行化

3.__sleep() 串行化某对象的部分属性。

4.__wakeup()反串行化时,初始化(其实是修改)对象内容

 

前两个的使用方法我们大概已经介绍过,接下来我们简单介绍一下__sleep()__wakeup()使用方法

1.如果我们只想串行化一个对象中的部分属性我们可以使用 __sleep()函数

在类定义中添加

function__sleep()//只序列化类中的nameage成员

{

$arr=new array('name','age');  nameage必须是类中的属性 可以根据自己的实际需要增加

Return arr;

}

2.假如我们在类串行化的时候,per对象的name属性值为“姜彤”在反序列化的时候我想改成"张三"怎么办

function __wakeup()
{

This->name="张三";

}

你可能感兴趣的:(PHP,数据库,网络,function)