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

标签 php parsing interpreter

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

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

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

这只是为了帮助我解决这个问题。我很感兴趣,但无法通过 Google 找到好的答案。

最佳答案

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

关于php - PHP 脚本究竟是如何执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720488/

相关文章:

php - Sql 查询(select * where)在 php 中不起作用

php - Nginx + php fastcgi 无法打开文件,权限被拒绝

javascript - 将 HTML NodeList 读入数组

php - PHP解析/语法错误;以及如何解决它们

python - 销毁子解释器后释放 GIL

php - Wordpress 函数在 wordpress 的 iframe 中不起作用

c# - HTML Agility Pack 找不到带有尾随空格的类

c# - 解析没有花括号的代码块的技巧

python - 为什么错误回溯显示已编辑的脚本而不是实际运行的脚本?

php - 删除按钮不会删除数据库中的所有值