php的单例是否能存留到第二个请求发送的时候呢

请问下PHP单例的生命周期是怎么样的呢?
比如我在第一个请求中取得一个单例,然后对其中变量$a进行赋值。这样在第二个请求的时候,是否可以取得这个$a变量?
关于这方面的知识,有经验的亲们,有什么优秀的博文或者书籍推荐学习的吗,多谢了?

阅读 3.2k
4 个回答

答案是不会,因为脚本结束的时候所有变量都已经释放了.

我觉得你需要了解下php的生命周期

    
  1. PHP是随着WEB服务器(apache)的启动而运行的;
  2. PHP通过mod_php5.so()模块和服务器(apache)相连
  3. PHP总共有三个模块:内核、Zend引擎、以及扩展层;
  4. PHP内核用来处理请求、文件流、错误处理等相关操作;
  5. Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;
  6. 扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要MySQL扩展来连接MySQL数据库;
  7. 当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还;
  8. 最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层,最终输出到浏览器上。
  
  

不可能,php是单进程单线程的

PHP的单例是单次请求的,请求结束会释放内存,单例也就不存在了。PHP种使用单例的意义在于在创建某耗费资源的实例(创建数据库连接之类的)时,单次请求只创建一次节省资源。像Java那种可以常驻内存的实例,单例可以一直存在,直到web容器关闭。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题