__destruct如何处理$_SESSION中的对象

如果PHP中的对象存储在会话$_SESSION中,何时将调用它的__destruct方法?我在手册中找不到任何明确的答案.它确实说__destruct将在脚本执行结束时自动调用,因此我希望无论$_SESSION中是否存在它都将被调用.

这是否意味着在会话中对对象的每次请求中都可能调用__destruct?

添加
该对象将在__destruct之前还是之后进行序列化? __destruct中的修改会在下一个请求中反映出来吗?

解决方法:

您实际上并没有在会话中存储对象,而是将其序列化存储为字符串.然后,您可以覆盖对象上的魔术__sleep和__wakeup方法.序列化对象时将调用__sleep,而尝试反序列化对象时将调用__wakeup.

有关更多信息,请参见:

Manual Documentation for __sleep and __wakeup

Manual Documentation for Storing Serialized Objects in Session

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...