我并不是C语言和PHP底层原理的专家,这里只能用一些简单的语言来描述PHP脚本编译执行的过程。
就如其他大部分脚本语言一样,PHP的执行分为两部分:
源代码编译成Zend虚拟机指令(PHP中叫opline)的过程
Zend虚拟机执行机器指令的过程
其中前者又会被分为下面几个步骤:
调用zendparse完成词法分析、语法分析,生成AST树
调用init_op_array, zend_compile_top_stmt来完成AST到opline数组的转化
调用pass_two完成编译时到运行时信息的转化,设置每个opcode对应的handler
发表评论