PHP7执行过程是怎样的?能否详细解释一下?

2026-04-03 12:240阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

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

PHP7执行过程是怎样的?能否详细解释一下?

PHP程序员都应了解PHP7+的代码执行过程。PHP是一种解释型语言,其执行过程如下:PHP代码+=Token+=抽象语法树(AST)。

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,才能被引擎直接执行。

阅读全文

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

PHP7执行过程是怎样的?能否详细解释一下?

PHP程序员都应了解PHP7+的代码执行过程。PHP是一种解释型语言,其执行过程如下:PHP代码+=Token+=抽象语法树(AST)。

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,才能被引擎直接执行。

阅读全文