PHP7的执行原理和步骤,你清楚吗?

更新于
2026-09-25 19:32:30
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1224个文字,预计阅读时间需要5分钟。

PHP7的执行原理和步骤,你清楚吗?

PHP程序员都应了解PHP7+代码的执行过程。PHP是一种解释型语言,其执行过程需先编译成中间代码,再由虚拟机翻译成特定指令执行。执行过程如下:PHP代码=Token=抽象语法树。

PHP 是解释型语言,其执行过程需先编译成中间代码,再经由特定的虚拟机,翻译成特定的指令被执行。其执行过程如下:
PHP 代码 => Token => 抽象语法树 => Opcodes => 执行

各个步骤内容如下:
源代码通过词法分析得到 Token
Token 是 PHP 代码被切割成的有意义的标识。PHP7 一共有 137 种 Token,在 zend_language_parser.h 文件中做了定义。

基于语法分析器将 Token 转换成抽象语法树(AST)
Token 就是一个个的词块,但是单独的词块不能表达完整的语义,还需要借助一定的规则进行组织串联。所以就需要语法分析器根据语法匹配 Token,将 Token 进行串联。语法分析器串联完 Token 后的产物就是抽象语法树(AST,Abstract Syntax Tree)。

AST 是 PHP7 版本的新特性,之前版本的 PHP 代码的执行过程中是没有生成 AST 这一步的。它的作用主要是实现了 PHP 编译器和解释器的解耦,提升了可维护性。

将语法树转换成 Opcode
需要将语法树转换成 Opcode,才能被引擎直接执行。

阅读全文

本文共计1224个文字,预计阅读时间需要5分钟。

PHP7的执行原理和步骤,你清楚吗?

PHP程序员都应了解PHP7+代码的执行过程。PHP是一种解释型语言,其执行过程需先编译成中间代码,再由虚拟机翻译成特定指令执行。执行过程如下:PHP代码=Token=抽象语法树。

PHP 是解释型语言,其执行过程需先编译成中间代码,再经由特定的虚拟机,翻译成特定的指令被执行。其执行过程如下:
PHP 代码 => Token => 抽象语法树 => Opcodes => 执行

各个步骤内容如下:
源代码通过词法分析得到 Token
Token 是 PHP 代码被切割成的有意义的标识。PHP7 一共有 137 种 Token,在 zend_language_parser.h 文件中做了定义。

基于语法分析器将 Token 转换成抽象语法树(AST)
Token 就是一个个的词块,但是单独的词块不能表达完整的语义,还需要借助一定的规则进行组织串联。所以就需要语法分析器根据语法匹配 Token,将 Token 进行串联。语法分析器串联完 Token 后的产物就是抽象语法树(AST,Abstract Syntax Tree)。

AST 是 PHP7 版本的新特性,之前版本的 PHP 代码的执行过程中是没有生成 AST 这一步的。它的作用主要是实现了 PHP 编译器和解释器的解耦,提升了可维护性。

将语法树转换成 Opcode
需要将语法树转换成 Opcode,才能被引擎直接执行。

阅读全文