代码之家  ›  专栏  ›  技术社区  ›  alex

php脚本是如何执行的?

  •  35
  • alex  · 技术社区  · 15 年前

    我只是在想“php脚本到底是如何执行的?”我以为它是先分析语法错误等,然后解释和执行。

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

    那么,php文件到底是如何解释和执行的呢?这涉及到什么阶段?包含的文件如何适应脚本的解析?

    这只是为了帮我清醒一下。我很感兴趣,用谷歌找不到好的答案。

    3 回复  |  直到 11 年前
        1
  •  18
  •   Vishnu Saini    12 年前

    php是自php 4.0以来的一种编译语言。

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

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

    2000年,当php 4首次发布时,php成为一种编译语言。直到版本3,php源代码被php解释器解析并立即执行。

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

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

        2
  •  16
  •   Ares    12 年前

    基本上,每次加载一个php脚本时,都要经过两个步骤:

    • php源代码被解析,并转换为 操作码
      • 一种等价于Java的字节码
      • 如果你想看看那些是什么样子,你可以用 VLD extension
    • 然后,执行这些操作码

    这些幻灯片来自Sebastian Bergmann,在幻灯片上,可以帮助您更好地理解这个过程: PHP Compiler Internals

        3
  •  1
  •   alex    15 年前

    这也是所有 parser tokens .

    推荐文章