PHP中__wakeup()方法的案例分析?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
<强> __wakeup(),执行unserialize()时,先会调用这个函数强>
如果说__sleep()是白的,那么__wakeup()就是黑的了。
<强>那么为什么呢? 强>
因为:
与之相反,unserialize()的会检查是否存在一个“__wakeup()的方法。如果存在,则会先调用__wakeup的方法,预先准备对象需要的资源。
<强>作用:强>
__wakeup()经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。
还是看代码:
& lt; PHP ? 类人 { 公共美元性; 美元的公共名称; 公共美元时代; 公共函数__construct ($ name=啊?年龄=25美元,美元性=& # 39;男& # 39;) { $ this→名称=$名称;=$ $ this→年龄年龄; 这→美元=$性; }/* * * @return数组 */公共函数__sleep () { 回声“当在类外部使用序列化()时会调用这里的__sleep()方法& lt; br>“; $ this→name=base64_encode ($ this→名称); 返回数组(& # 39;名字# 39;& # 39;年龄# 39;);//这里必须返回一个数值,里边的元素表示返回的属性名称 }/* * * __wakeup */公共函数__wakeup () { 回声“当在类外部使用unserialize()时会调用这里的__wakeup()方法& lt; br>“; $ this→名称=2; $ this→性=& # 39;男& # 39;;//这里不需要返回数组 } } 人=new美元(& # 39;小明& # 39;);//初始赋值 var_dump(序列化(人)美元); var_dump (unserialize(序列化(人)美元));
运行结果:
当在类外部使用序列化()时会调用这里的__sleep()方法 字符串(58)“O: 6:“Person" 2: {: 4:“name"销售:8:“5 bcp5pio";销售:3:“age";我:25;},当在类外部使用序列化()时会调用这里的__sleep()方法 当在类外部使用unserialize()时会调用这里的__wakeup()方法 对象(人)# 2 (3){[“sex"]=比;字符串(3)“男”;(“name")=比;int (2) (“age")=比;int (25)}
感谢各位的阅读!看完上述内容,你们对PHP中__wakeup()方法的案例分析大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。