php的执行周期,从最初湖编写的PHP脚本---->到最后脚本被执行---->得到执行结果。可以分为如下几个阶段。
首先,Zend Engine(ZE),调用词法分析器(Lex生成的,源文件在zend/zend_language_sanner.l),将我们要执行的PHP源文件,去掉空格,注释,分割成一个token。
然后,ZE将得到的token退给语法分析器(yaccs生成,源文件在Zend/zend_language_parse.y),生成一个个的opcode,opcode一般会以op array的形式存在,他是PHP执行的中间语言。
最后,ZE调用zend_executor来执行op array,输出结果(也就是将源文件转换成机器语言,然后在虚拟机上运行它)