如何执行一个PHP脚本?
我只是在想自己“PHP脚本究竟是如何执行的?” 我认为这是首先parsing语法错误等,然后解释和执行。
但是,我不知道为什么我相信这是正确的。 我可能是错的。
那么,PHP文件究竟是如何解释和执行的呢? 这涉及什么阶段? 包含的文件如何适合脚本的parsing?
这只是为了帮助我解决问题。 我对Google感兴趣,无法find合适的答案。
基本上,每次加载PHP脚本时,都会经历两个步骤:
- PHP源代码被parsing,并转换为所谓的操作码
- 一种相当于JAVA的字节码
- 如果你想看看这些是什么样的,你可以使用VLD扩展
- 然后,这些操作码被执行
这些来自Slideshare的Sebastian Bergmann的幻灯片可能会帮助您更好地理解这个过程: PHP编译器内部
PHP是PHP 4.0以来的一种编译语言
什么是编译器的想法似乎是一个引起混乱的主题。 有些人认为编译器是一种将一种语言的源代码转换成可执行程序的程序。 什么是编译器的定义实际上比这个更广泛。
编译器是一个将源代码转换为另一个代码表示的程序。 目标表示通常是机器代码,但也可能是其他语言的源代码,甚至是相同的语言。
PHP在2000年成为一种编译语言,PHP 4首次发布。 在版本3之前,PHP源代码被PHP解释器parsing并立即执行。
PHP 4引入了Zend引擎。 这个引擎将PHP代码的处理分成几个阶段。 第一阶段parsingPHP源代码,并生成一个称为Zend操作码的PHP代码的二进制表示。 操作码是类似于Java字节码的指令集。 这些操作码存储在内存中。 Zend引擎处理的第二阶段在于执行生成的操作码。
形成更多的信息去http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html
这里也是所有parsing器标记的列表。