我记得在php.net上阅读(虽然遗憾的是似乎无法找到页面)PHP解释器可以以不同的方式运行 - 最常见的是,每次请求页面时,PHP解释器的一个实例创建,运行其路线,然后被销毁,以及与该特定页面调用关联的所有内存。显然,也可以允许所有内存延续,以便在将来的页面调用中再次使用它;据我所知,基本上允许多个不同的PHP脚本访问和修改相同的对象,而不会在脚本完成后丢失它们。
或者至少,所以我记得。有没有道理呢?如果是这样,我该如何设置?
答案 0 :(得分:5)
php无法正常工作。它的运行和忘记。
您可以使用userland共享内存扩展在请求之间保存数据,例如:apc,xcache,memcached等。
或在调用session_start
后使用会话数据数组$ _ SESSION
不要将php脚本视为例如Java应用程序。 tomcat的。标准的php不是为那个用例而设计的。 php编译器即时工作。
答案 1 :(得分:1)
您可以将shared memory用于所需的一些内容,但Redis / Memcache可能是更好的选择。
答案 2 :(得分:0)
让服务器保持在请求之间,对象也会这样做:
使用编写良好的应用程序可以提供比APC更快的速度,但是如果你需要使用多个文件夹(你仍然可以使用粘性会话),它不能在用户之间扩展。