我创建了一个我在index.php文件中初始化的单例类日历。
当我尝试使用jquery .ajax帖子获取前一个月或下个月时,我意识到我的单例对象被破坏并使用私有构造函数再次初始化。
如何在页面关闭之前保留单例的第一个实例,以便我可以浏览日历?有没有办法停止破坏单例实例?
答案 0 :(得分:4)
在PHP中,对象的生命周期完全在请求范围内 - 它不会像您在其他语言(如Java)中看到的那样保留值。这意味着您的单例类将在每个请求上实例化,但在该请求中您只能有一个实例。
原因是PHP是一种脚本语言 - 当脚本执行完成时,一切都被丢弃了。
如果要在请求之间共享数据,则需要使用缓存层(APC,Memcached等),甚至写入会话或磁盘。