首页 > 生活 > 生活妙招

.php如何运行(php运行原理)

常驻编辑 生活妙招 2022-03-05 原理   php

一、php7的执行原理概述VV4拜客生活常识网

我们了解到的高级编程语言大体分为两种:一种是编译型语言,一种是解释型语言,像c、go语言等就是编译型语言,在应用程序执行之前,就将程序代码翻译成汇编语言,然后根据软硬件环境编译成目标文件。而解释型语言,在程序运行时才被翻译成机器语言,执行一次解释一次,所以效率相对较低。VV4拜客生活常识网

在php7中,源代码首先进行词法分析,将代码切分为多个字符串单元,分割后的字符串叫做token,独立的token是无法表达语义的,需要经过语法分析,将token转换成抽象语法树(AST)。之后,抽象语法树在转换为机器指令执行,这些指令在php中成为opcode。如常见的 echo 对应的opcode指令就是ZEND_ECHO。VV4拜客生活常识网

(1)tokenVV4拜客生活常识网

token是php代码被切割成的有意义的标识,通过token_get_all()函数查看到token的值转换成一个二维数组,每个成员数组的第一个值为token对应的枚举值,第二个值为token对应的字符串内容,第三个值为代码对应的行号。VV4拜客生活常识网

(2)ASTVV4拜客生活常识网

token是一个个单独的“词块”,需要借助规则来串联,串联后的产物就是php7新增的AST,实现了php编译器和解释器的解耦,有效提升了可维护性。VV4拜客生活常识网

(3)opcodesVV4拜客生活常识网

AST扮演了源码到中间代码的临时存储介质的角色,还需要转换成opcode才能被引擎执行,opcode是单独指令,opcodes是opcode的集合形式,是php执行过程中的中间代码,类似java的字节码,opcode生成之后由虚拟机执行。VV4拜客生活常识网

我们知道,php工程优化中有个比较常见的开启“开启opcache”。指的就是opcodes缓存,通过省去了从源码到opcode的阶段,引擎直接执行缓存的opcode,以提升性能。VV4拜客生活常识网

VV4拜客生活常识网

相关阅读:

  • 为什么藕断丝连(藕断丝连的植物学原理)
  • 为什么下雨会打雷(下雨打雷是什么原理)
  • 为什么烫头发(烫发的原理是什么)
  • 如何画齿轮(机械原理齿轮简图怎么画)
  • 富兰克林避雷针的故事简介,富兰克林是怎么发明避雷针的
  • 属猴的人财位在哪方,属猴的正财位方向
  • 猪的财位方向,生肖猪的财位在哪个方向
  • 属羊的财位在哪里属羊的聚财方法,属羊的哪个方位有财
  • 属蛇财运位置,属蛇的财位在哪个方向
  • 属马的发财方位在哪里,属马今天财位
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。