什么時候使用串行化?
在網絡中傳輸對象的時候
向數據庫中保存文件的時候
今天我們要提到四個函數
全部串行化
1.serialize(對象名)?將指定的類對象串行化??$str=serialize($per)? //將per對象串行化,結果返回給$str
2.unserialize(串行化后的返回值)?返回結果是對象????$per=unserialize($str);
局部串行化
3.__sleep()?串行化某對象的部分屬性。
4.__wakeup()反串行化時,初始化(其實是修改)對象內容
前兩個的使用方法我們大概已經介紹過,接下來我們簡單介紹一下__sleep()和__wakeup()使用方法
1.如果我們只想串行化一個對象中的部分屬性我們可以使用 __sleep()函數
在類定義中添加
function__sleep()//只序列化類中的name和age成員
{
$arr=new array('name','age');??name和age必須是類中的屬性?可以根據自己的實際需要增加
Return arr;
}
2.假如我們在類串行化的時候,per對象的name屬性值為“姜彤”在反序列化的時候我想改成"張三"怎么辦
function __wakeup()
{
This->name="張三";
}