第十三节对象序列化13
当一个对象被序列化,PHP将调用__sleep方法(如果存在的话)。在反序列化一个对象,PHP将调用__wakeup方法。这两种方法是不可接受的参数。的__sleep方法必须返回一个属性数组需要序列化。PHP将放弃其他属性。价值。如果没有__sleep方法,PHP将保存所有属性。
6.16个示例显示如何序列化使用__sleep和__wakeup方法对象。id属性不是在对象中保留临时属性的计划。为了确保ID属性不包含对象的序列化反序列化过程中的__sleep方法。当一个用户对象__wakeup方法建立身份的新价值属性设置这个例子的目的是保持自我。在实际开发中,您可能会发现包含这些方法需要的资源(如图像或数据流)对象。
清单6.16对象序列化
类用户
{
公开名称;
公共身份证;
__construct()函数
{
给用户一个唯一的ID,给出一个不同的ID
美元-> ID = uniqid();
}
__sleep()函数
{
/ /不序列化->不是序列化ID
返回(数组(name));
}
__wakeup()函数
{
给用户一个唯一的ID
美元-> ID = uniqid();
}
}
创建对象
新用户;
列昂;
/ /它序列化序列化不关注非序列化的属性,和ID的值是被遗弃的
$ S =连载($ U);
/ /序列化反序列化重新分配它的ID
$ U2 =序列化(的);
$ u和U2有不同的ID,$和U2有不同的ID
print_r(为你);
print_r($ U2);
>