微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否在请求之间以某种方式共享PHP单例类?

我在所有PHP文件中使用单例模式.

会不会导致用户在网站上的操作与其他用户的操作发生冲突?

例如,当应用程序上线并且我们同时在站点上有多个用户时,通过调用相同的PHP类(在幕后)来执行类似的操作,因为singleton会阻止一个类的多个实例并仅返回单个实例.

例如我有一个名为Search.PHP的类,它是一个单例类.此类处理来自网站的所有搜索查询.如果多个用户同时在站点上执行搜索,则由于它们只是可以创建的Search类的单个实例,因此他们的操作会彼此冲突.

非常感谢你花时间陪伴.

解决方法:

最简洁的答案是不.

每个页面请求都作为一个唯一的实例处理,并且将每个用户的唯一请求绑定到会话cookie中.尝试将PHP视为一个应用程序,该应用程序在您调用脚本时启动,并在脚本结束时终止.它不维护任何状态,并且固有地不知道任何其他PHP实例.

单例模式只是您设计类的一种方式,您可以在其中在代码中的任何地方(例如全局)调用它,而不必担心它是否已被实例化以及是否希望将其持久化在内存中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐