gpt4 book ai didi

php - __destruct 如何处理 $_SESSION 中的对象

转载 作者:搜寻专家 更新时间:2023-10-31 20:48:02 24 4
gpt4 key购买 nike

如果PHP中的一个对象存储在session中,$_SESSION,什么时候调用它的__destruct方法?我无法在手册中找到任何明确的答案。它确实说 __destruct 将在脚本执行结束时自动调用,所以我的期望是无论它是否存在于 $_SESSION 中,它都会被调用。

这是否意味着潜在的 __destruct 将在每次请求 session 中的对象时被调用?

添加:对象是在 __destruct 之前还是之后序列化? __destruct 中的修改会反射(reflect)在下一个请求中吗?

最佳答案

您实际上并没有在 session 中存储对象,而是将其序列化为字符串存储。然后,您可以覆盖对象上神奇的 __sleep__wakeup 方法。 __sleep 在对象被序列化时调用,__wakeup 在您尝试反序列化对象时调用。

有关详细信息,请参阅:

Manual Documentation for __sleep and __wakeup

Manual Documentation for Storing Serialized Objects in Session

关于php - __destruct 如何处理 $_SESSION 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com