PHP执行流程回顾

初识PHP

    就php而言,它是一组符合一定规则的约定的指令。然后通过PHP的虚拟机(ZendE)将PHP指令转换成C语言指令,C语言又转变成汇编语言,最后汇编语言将根据处理器的规则转变成机器码执行。

为什么PHP被称为解释类语言?

    首先来认识一下编译类语言,源语言到目标语言的转化过程由编译器完成,编译器常被分为,分析源程序过程:词法分析、语法分析、语义分析;和构造目标程序过程:中间代码生成、代码优化、目标代码生成。编译类语言在执行之前有一个形式上完全不同的等价程序生成。而PHP没有这分程序生成,它生成的是中间代码Opcode,这只是PHP内部的数据结构。

PHP的执行流程

    1、词法分析 Scanning(Lexing),将PHP代码转换成语言片段(Tokens)
    PHP是基于 re2c 语法分析依据表作为语法分析的。在PHP源嘛文件夹中可以看到 zend/zend_language_sanner.l这个规则文件。
    2、语法分析 Parsing,将 Tokens 装换成简单有意义的表达式
    Bison是一种通用目的的分析器生成器。它将LALR(1)上下文无关文法的描述转化成分析该文法的C程序。 使用它可以生成解释器,编译器,协议实现等多种程序
    Bison分析器文件是定义了名为yyparse并且实现了某个语法的函数的C代码。PHP中 yyparse被zendparse代替。
    3、编译 Compilation,将表达式编译成 Opcodes
    4、执行 Execution ,znedE 顺序执行 Opcodes,每次一条,从而实现PHP脚本的功能,和机器指令运行相似。
本作品采用《CC 协议》,转载必须注明作者和本文链接
join_jiang
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

学习了!谢谢!

1年前 评论
666666 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!