PHP的生命周期

PHP的生命周期

php本身的生命周期是在命令行执行php test.php程序的生命周期(也就是cli)

整个过程如下:

执行php test.php

调用每个扩展的模块初始化程序

    请求test.php程序

    调用每个扩展的请求初始化程序

        执行test.php程序

    调用每个扩展的请求关闭程序

    释放内存等清除工作

调用每个扩展的模块关闭程序

终止php

如果PHP运行在WEB服务器中,那么它的生命周期就会有些不同了,这里又要根据服务器的不同分为以下三种:

1、单进程

模块初始化

    请求初始化

        执行脚本

    关闭请求

    请求初始化

        执行脚本

    关闭请求
    请求初始化
        执行脚本
    关闭请求
    请求初始化
        执行脚本
    关闭请求
……

……
……
模块关闭

单进程的WEB服务器只对模块初始化一次,所有的页面请求都在其中

2、多进程

模块初始化                         模块初始化                    模块初始化                模块初始化

    请求初始化                         请求初始化                    请求初始化                请求初始化

        执行脚本                            执行脚本                      执行脚本                   执行脚本

    关闭请求                            关闭请求                      关闭请求                   关闭请求

    请求初始化                         请求初始化                    请求初始化                请求初始化

        执行脚本                            执行脚本                      执行脚本                   执行脚本

    关闭请求                            关闭请求                      关闭请求                   关闭请求

    请求初始化                         请求初始化                    请求初始化                请求初始化

        执行脚本                            执行脚本                      执行脚本                   执行脚本

    关闭请求                            关闭请求                      关闭请求                   关闭请求

……                                  ……                            ……                         ……

关闭模块                            关闭模块                       关闭模块                    关闭模块

多进程只是把单进程复制了多份,各个子进程间无法共享数据等。

3、多线程

                        模块初始化

请求初始化                         请求初始化                    请求初始化                请求初始化

    执行脚本                            执行脚本                      执行脚本                   执行脚本

关闭请求                            关闭请求                      关闭请求                   关闭请求

                    关闭模块

全局变化可以在初始化的时候建立,并且只建立一次。

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>