PHP执行代码过程:
当PHP7收到一个请求或执行命令时,会根据参数加载对应的PHP代码,进行词法和语法分析,生成AST,再生成字节码,PHP中称opcodes,继而在zend虚拟机中逐行执行字节码,得到结果返回。
10.1.1 编译器
编译器是一个程序,可以读取某种语言(称作源语言)编写的程序并将其翻译成一个与之等价的另一种语言(称作目标语言)的程序。
10.1.2 源程序分析
语言处理过程:分别是预处理器、编译器、汇编器以及装载器/连接器。
预处理器:预处理器程序会把储存在不同文件中的程序模块集成为一个完整的源程序
编译器:把源程序编译成目标汇编程序
汇编器:将目标汇编程序转换为可重定位的机器码
然后通过装载器和连接器转换为绝对的机器代码
词法分析:
又叫线性分析,从左到右读取源程序的字符,并将字符转换为一个又一个的记号,称作Token。Token是具有整体含义的字符串序列。
语法分析:
这个过程会把字符串或Token在层次上划分为有一定层次的组,每个组有整体的含义。