9

我记得在php.net上阅读过(尽管不幸的是似乎找不到该页面),PHP 解释器可以以不同的方式运行 - 最常见的是,每次请求页面时,都会创建 PHP 解释器的一个实例,运行它当然,然后与与该特定页面调用相关的所有内存一起被销毁。显然,也可以让所有内存留存下来,以便在以后的页面调用中再次使用它;据我了解,本质上允许多个不同的 PHP 脚本访问和修改相同的对象,而不会在脚本完成后丢失它们。

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

4

3 回答 3

6

php 不能那样工作。它关于运行和忘记。

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

或在调用 session_start 后使用会话数据数组

$_SESSION

不要把 php 脚本想成像 tomcat 中的 java 应用程序。标准 php 不是为该用例设计的。php 编译器即时工作。

于 2012-04-19T21:13:39.137 回答
1

您可以将共享内存用于您想要的一些东西,但 Redis/Memcache 可能是更好的选择。

于 2012-04-19T21:15:56.843 回答
0

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

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

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

于 2012-04-19T21:15:41.630 回答