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

2022-08-30 12:59:24

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

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

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

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


答案 1

PHP 是自 PHP 4.0 以来的编译语言

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

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

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

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

表格 更多信息 转到 http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html


答案 2

基本上,每次加载PHP脚本时,它都会经历两个步骤:

  • PHP源代码被解析,并转换为所谓的操作码
    • 相当于JAVA的字节码
    • 如果你想看看它们是什么样子的,你可以使用VLD扩展
  • 然后,执行这些操作码

这些来自Sebastian Bergmann的幻灯片,在slideshare上,可能会帮助你更好地理解这个过程: PHP编译器内部


推荐