[转]PHP底层运行原理和zend编译机制学习

底层运行的原理(属于比较清晰易懂的):http://blog.163.com/cmdbat@126/blog/static/17029212320136120386182/


Opcode是一种PHP脚本编译后的中间语言,就像Java的ByteCode,或者.NET的MSL,举个例子,比如你写下了如下的PHP代码:

 echo "Hello World";
   $a = 1 + 1;
   echo $a;

PHP执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend)

1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)
2.Parsing, 将Tokens转换成简单而有意义的表达式
3.Compilation, 将表达式编译成Opocdes
4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。
题外话:现在有的Cache比如APC,可以使得PHP缓存住Opcodes,这样,每次有请求来临的时候,就不需要重复执行前面3步,从而能大幅的提高PHP的执行速度。


php是一种脚本语言,不能先编译保存下来再执行,只在被调用时进行解释或编译。
原文地址:https://www.cnblogs.com/linewman/p/9918938.html