怎么样?有点理解了么。
说实话,单看这个,我本人是有点懵的,不过,不要怕。
咱们来逐步地看下。

首先,在网上找的信息说PHP代码实行的顺序是这样的,第一步是词法剖析,第二步是语法剖析,第三步是转化为opcode,第四部也便是顺序实行这些opcode了。

聪明如各位看到这里,再返回上面看一下这张图片,肯定就会有不一样的觉得了。
咱们借用一句话来阐述这几个步骤:当PHP拿到一段代码后,经由词法解析、语法解析等阶段后,源程序会被翻译成一个个指令(opcodes),然后ZEND虚拟机顺次实行这些指令完成操作。

php代码运行浅谈PHP代码履行的年夜致流程opcode PHP

我们都知道,PHP本身是用C实现的,因此终极调用的也是C的函数,实际上,我们可以把PHP看做一个C开拓的软件。
既然如此,那么PHP的代码实行的核心也便是翻译出来的一条一条指令,在这里便是opcode。

那么,我们就可以把opcode算作是PHP代码实行的最基本单位。
以是PHP代码实行的实质也就可以理解为,我们的代码终极被翻译为一组opcode处理函数,完事之后再顺序实行。

有了这些认知之后,我们就来看下这个opcode究竟是什么鬼。
实质上一个opcode由两个参数(op1,op2)、返回值和处理函数组成。
它的官方阐明便是PHP脚本编译后的中间措辞,类似于java中的bytecode或者是.net中的MSL。

它的浸染便是如下:

1、编译事理的中间过程会产生一种中间代码(措辞),PHP由Zend引擎(C措辞编写)编译后的中间代码为Opcode然后再交由Zend引擎处理,犹如C措辞编译后汇编代码然后再交由汇编。

2、天生的Opcode作为一种中间措辞,可以帮助实现PHP源程序代码的不开源,如果你不想别人知道你的PHP代码是怎么写的,那你可以直策应用APC截取天生Opcode缓存文件,然后利用自己的PHP扩展加密程序对Opcode文件进行加密和解密,在Zend引擎对Opcode进行解析提高行解密然后再实行。