你好我正在使用zend框架,我试图将它与教义结合起来。不是最难做的事情,但我想要做的是一个具有静态成员的类,它将是实体管理器,我想在整个应用程序上下文中创建它。
当我在php中使用静态变量来学习它是如何工作的以便做我想要的时候我意识到php在每个请求中创建了一个静态变量的新实例。所以静态变量只是通过请求保持静态而不是整个应用程序是正确的,有人可以告诉如何为整个应用程序做静态变量,无论来到服务器的请求。
答案 0 :(得分:1)
你不能直接使用PHP,你需要某种持久性,比如序列化对象并将其保存在数据库中,即使这样,你也会遇到很多并发问题。
PHP不仅为每个请求创建每个静态变量的新实例,它基本上运行每个请求的整个应用程序。实际上,假设您正在运行像apache这样的Web服务器,它会同时运行多个应用程序实例,因为apache能够立即处理mutiliple请求。因此,即使您能够将对象序列化为某种持久性(如数据库),您也可能会覆盖应用程序的另一个实例对其所做的更改。
答案 1 :(得分:0)
您正在寻找的内容听起来像Singleton Pattern。请查看该参考资料,了解如何在项目中实施它。
答案 2 :(得分:0)
是的,静态变量仅在请求的生命周期内保留。如果你想要一个超出该值的值,你需要将它保存到某种外部到PHP的存储,比如内存缓存或数据库。