保留在内存中的PHP对象

时间:2012-04-19 21:10:41

标签: php

我记得在php.net上阅读(虽然遗憾的是似乎无法找到页面)PHP解释器可以以不同的方式运行 - 最常见的是,每次请求页面时,PHP解释器的一个实例创建,运行其路线,然后被销毁,以及与该特定页面调用关联的所有内存。显然,也可以允许所有内存延续,以便在将来的页面调用中再次使用它;据我所知,基本上允许多个不同的PHP脚本访问和修改相同的对象,而不会在脚本完成后丢失它们。

或者至少,所以我记得。有没有道理呢?如果是这样,我该如何设置?

3 个答案:

答案 0 :(得分:5)

php无法正常工作。它的运行和忘记。

您可以使用userland共享内存扩展在请求之间保存数据,例如:apc,xcache,memcached等。

或在调用session_start

后使用会话数据数组
  

$ _ SESSION

不要将php脚本视为例如Java应用程序。 tomcat的。标准的php不是为那个用例而设计的。 php编译器即时工作。

答案 1 :(得分:1)

您可以将shared memory用于所需的一些内容,但Redis / Memcache可能是更好的选择。

答案 2 :(得分:0)

让服务器保持在请求之间,对象也会这样做:

  • appserver-in-php - PHP5.3 +的通用HTTP应用程序方法(受Rack和WSGI启发)

使用编写良好的应用程序可以提供比APC更快的速度,但是如果你需要使用多个文件夹(你仍然可以使用粘性会话),它不能在用户之间扩展。