PHP脚本究竟是如何执行的?

ale*_*lex 35 php parsing interpreter

我只是在想自己"PHP脚本究竟是如何执行的?" 我认为它首先被解析为语法错误等,然后解释和执行.

但是,我不知道为什么我认为这是正确的.我可能错了.

那么,PHP文件究竟是如何被解释和执行的呢?这涉及哪些阶段?包含的文件如何适合脚本的解析?

这只是为了帮助我理解它.我很感兴趣,无法与谷歌找到一个好的答案.

小智 18

PHP是PHP 4.0以来的编译语言

什么是编译器的想法似乎是一个引起很大混乱的主题.有些人认为编译器是一种将一种语言的源代码转换为可执行程序的程序.什么是编译器的定义实际上比那更广泛.

编译器是将源代码转换为代码的另一种表示的程序.目标表示通常是机器代码,但它也可以是另一种语言的源代码,甚至是同一种语言.

PHP在2000年首次发布时成为了一种编译语言.在版本3之前,PHP解释器立即解析并执行了PHP源代码.

PHP 4引入了Zend引擎.该引擎将PHP代码的处理分为几个阶段.第一阶段解析PHP源代码并生成称为Zend操作码的PHP代码的二进制表示.操作码是类似于Java字节码的指令集.这些操作码存储在内存中.Zend引擎处理的第二阶段包括执行生成的操作码.

有关更多信息,请访问http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html


Pas*_*TIN 16

基本上,每次加载PHP脚本时,它都需要两个步骤:

  • PHP源代码被解析,并转换为所谓的操作码
    • 类似于JAVA的字节码
    • 如果您想查看它们的外观,可以使用VLD扩展
  • 然后,执行那些操作码

来自Sebastian Bergmann的幻灯片中的这些幻灯片可能会帮助您更好地理解这个过程:PHP Compiler Internals