介绍
这篇文章主要介绍了PHP中__sleep()方法的案例分析,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
<强>,__sleep(),执行序列化()时,先会调用这个函数强>
序列化()函数会检查类中是否存在一个魔术方法__sleep()。如果存在,则该方法会优先被调用,然后才执行序列化操作。
此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。
如果该方法未返回任何内容,则零被序列化,并产生一个E_NOTICE级别的错误。
<强>注意:强>
__sleep()不能返回父类的私有成员的名字。这样做会产生一个E_NOTICE级别的错误。可以用可序列化的接口来替代。
作用:
__sleep()方法常用于提交未提交的数据,或类似的清理操作,同时,如果有一些很大的对象,但不需要全部保存,这个功能就很好用。
具体请参考如下代码:
& lt; PHP ? 类人 { 公共美元性; 美元的公共名称; 公共美元时代; 公共函数__construct ($ name=啊?年龄=25美元,美元性=& # 39;男& # 39;) { $ this→名称=$名称;=$ $ this→年龄年龄; 这→美元=$性; }/* * * @return数组 */公共函数__sleep () { 回声“当在类外部使用序列化()时会调用这里的__sleep()方法& lt; br>“; $ this→name=base64_encode ($ this→名称); 返回数组(& # 39;名字# 39;& # 39;年龄# 39;);//这里必须返回一个数值,里边的元素表示返回的属性名称 } } 人=new美元(& # 39;小明& # 39;);//初始赋值 回声序列化($人); 回声& # 39;& lt; br/祝辞& # 39;;
代码运行结果:
当在类外部使用序列化()时会调用这里的__sleep()方法 O: 6:“Person": 2: {: 4:“name"销售:8:“5 bcp5pio";销售:3:“age";我:25;}
感谢你能够认真阅读完这篇文章,希望小编分享PHP中__sleep()方法的案例分析内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!