PHP中__wakeup()方法的案例分析

  

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()方法的案例分析大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

PHP中__wakeup()方法的案例分析