PHP执行流程
对于PHP脚本在服务端的执行大致分为两个阶段:
流程一
传递给PHP解析器需要执行的文件地址,此处的PHP解析器通常运行的SAPI模式有两种:CLI和FastCGI,PHP解析器会完成启动流程即加载配置,完成Zend引擎的初始化和扩展模式的加载和初始化。
流程二
读取文件内容,Zend引擎对文件内容进行词法分析和语法分析,然后编译成Opcode进行执行(在PHP7下是会先生产语法树在生成Opcode进行执行),在安装类似apc等扩展后,可能会读取缓存后的opcode直接执行。
注:PHP中include/require/eval等加载文件或执行脚本时是会重复上述步骤2的。
解释图
图一

图二

PHP执行说明
在第二步骤中,对于PHP脚本的语法解析,词法解析和翻译成中间代码等过程统称为Zend虚拟机,这个过程也是高级语言转化为低级语言的一部分过程,中间代码理论上是可以保持起来长期运行的,这个是编译过程,PHP与C#,Java等语言一样都有自己的虚拟机,就是想计算机语言抽象化,以自己的语言规则,内存管理和指令集合等来描述现实世界的事物。
小结
本节简单描述了PHP脚本的执行过程,对过程有大概的了解,以后的章节中会对每个步骤进行详细的说明和分析,毕竟这些过程都是非常贴近本质的,深度学习能提高对PHP更深层次的理解,可能会有很多不一样的收获。
网友评论