留在内存中的PHP对象

留在内存中的PHP对象,php,Php,我记得读到过(尽管很遗憾,似乎找不到页面)PHP解释器可以以不同的方式运行——最常见的是,每次请求页面时,都会创建一个PHP解释器实例,运行它的过程,然后被销毁,以及与该特定页面调用相关的所有内存。显然,也可以允许所有内存都保留,以便在将来的页面调用中再次使用;据我所知,基本上允许多个不同的PHP脚本访问和修改相同的对象,而不会在脚本完成后丢失它们 至少,我记得。这是真的吗?如果是这样,我将如何设置它?php不是这样工作的。它是关于跑和忘记 您可以使用userland共享内存扩展在请求之间保存数

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


至少,我记得。这是真的吗?如果是这样,我将如何设置它?

php不是这样工作的。它是关于跑和忘记

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

或者在调用session\u start之后使用会话数据数组

美元会议


不要把php脚本想象成tomcat中的java应用程序。标准php不是为该用例设计的。php编译器可以动态工作。

让服务器保持在请求之间,对象也可以:

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

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

您可以使用一些您想要的功能,但Redis/Memcache可能是更好的选择。

您想解决什么问题?最初的问题是什么?也许$\u SESSION变量就是您所需要的:)如果您想在内存中持久化对象,那么将它们缓存在APC或Memcached中。是的,也许你只是在寻找会话功能。虽然有共享内存方法,但它仍然是序列化和非序列化的objects@zerkms:我打算用它来创建一个应用程序,该应用程序不断地从其他服务器发送和接收信息(通过基本的GET和POST),并且需要能够同时发出多个请求,这些请求完成后可以返回到以前的范围并相应地更改数据。我曾考虑过使用数据库,但我认为它最终会变得过于复杂。戈米:我不完全明白,我如何才能确保它获得正确的会话?我发现这非常有帮助。每个文件可以共享相同的会话名称,并且所有相关数据都可以存储在会话对象中。这样,我就可以运行一个初始化文件来设置会话对象,然后所有相关的脚本文件都可以相应地使用它。@Monchoman45我认为会话不是用来替换$GLOBALS或页面缓存的,如果这是您想要的;)