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

标签 php class singleton

我在所有 PHP 类文件中都使用单例模式。

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

例如,当应用程序上线并且网站上同时有多个用户时,通过调用相同的 PHP 类(在幕后)做类似的事情,因为单例阻止了一个类的多个实例并只返回单个实例。

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

非常感谢您的宝贵时间。

最佳答案

简短的回答是否定的。

每个页面请求都作为一个独特的实例处理,唯一将每个用户将它们联系在一起的是 session cookie。尝试将 PHP 视为一个应用程序,它在您调用脚本时启动并在脚本完成时终止。它不维护任何状态,并且本身不了解任何其他 PHP 实例。

单例模式只是你设计一个类的一种方式,你可以在你的代码中的任何地方调用它(比如全局)而不用关心它是否已经被实例化或者你希望它持久化在内存中。

关于php - PHP 单例类是否以某种方式在请求之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/432192/

相关文章:

php - 如何处理 IBM i Pase(特别是 PHP Composer)中的密码提示

php - 如何确定字符串是序列化对象/数组还是只是字符串?

objective-c - 单例的线程安全实例化

swift - 在单例结构中使用 self

php - 在 MySQL 中计算一行?

用于表单重新提交的 PHP 重定向 header 不起作用

c++ - 在另一个类中定义静态类指针

具有在初始化时定义的不同行为的 C++ 成员函数

java - 如何为每个对象使用变量

java-8 - @Lock(LockType.READ) Java 8 中的单例 Ejb