PHP7系列:解释型语言也需要编译吗(九)

PHP代码的编译与执行

首先我们来看看编译型语言与解释型语言的区别是什么。

编译型语言

源语言(C语言)首先编译器进行编译,如果编译错误就报出错误信息;如果编译通过则生成一个可执行的二进制文件(目标语言),可以直接在物理机上运行。PHP7系列:解释型语言也需要编译吗(九)

解释型语言

以PHP代码为例。PHP代码其实也需要经过编译器编译,因为是实时编译的,所以我们写的代码能直接看到结果。这个编译器是由PHP内核实现的,涉及到了词法与语法的分析。先把代码编译成opcodes,需要虚拟机才能执行运行的代码。
PHP7系列:解释型语言也需要编译吗(九)

所以这样看来PHP解释型语言也是需要编译的。 所以一般提高PHP的执行效率,所以一般会opcodes之上加一层缓存,以提高PHP的执行效率。