第十三节对象序列化13

第十三节对象序列化13
序列化可以放入包括对象字节数据在内的连续变量中。可以将现有的串行变量放在文件或网络中。然后反序列化恢复原来的数据。在你定义对象反序列化的类,属性和方法可以成功存储对象的PHP。有时你可能在反序列化后立即执行,需要一个对象。为此,PHP会自动找到__sleep和__wakeup方法。

当一个对象被序列化,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);
>

tag:对象序列化第十三节电脑软件

相关内容