zoukankan      html  css  js  c++  java
  • php 执行流程

    php 的执行流程还是比较底层的知识了,带大家了解一下

    先直接上个流程图

    四个步骤:

    1. 扫描,将代码转换成Tokens
    2. 解析,将Tokens 转换成有意义的表达式
    3. 编译,将表达式编译成opcodes 指令
    4. 执行,顺序执行opcodes指令

    归纳:

    PHP动态语言执行过程:拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令(opcodes),然后ZEND虚拟机顺次执行这些指令完成操作。

    PHP本身是用C实现的,因此最终调用的也是C的函数,实际上,我们可以把PHP看做一个C开发的软件。

    PHP的执行的核心是翻译出来的一条一条指令,也是opcode。所以Opcode是PHP程序执行的最基本单位。

    在计算机科学领域中,操作码(Operation Code, OPCode)被用于描述机器语言指令中,指定要执行某种操作的那部分机器码,构成OPCode的指令格式和规范由处理器的指令规范指定。

    一个opcode由两个参数(op1,op2)、返回值和处理函数组成。PHP程序最终被翻译为一组opcode处理函数的顺序执行。

    zend 引擎执行了先关的函数

    ZEND_ASSIGN_SPEC_CV_CV_HANDLER : 变量分配 ($a=$b)
    ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER:函数调用
    ZEND_CONCAT_SPEC_CV_CV_HANDLER:字符串拼接 $a.$b
    ZEND_ADD_SPEC_CV_CONST_HANDLER: 加法运算 $a+2
    ZEND_IS_EQUAL_SPEC_CV_CONST:判断相等 $a==1
    ZEND_IS_IDENTICAL_SPEC_CV_CONST:判断相等 $a===1

    哪有什么直男,只要你够好看,都能变成弯的。

  • 相关阅读:
    浅谈求卡特兰数的几种方法
    WPF基础知识、界面布局及控件Binding
    .net平台下C#socket通信(上)
    .net泛型理解
    面向过程和面向对象及面向对象的三大特征
    C#配置文件管理
    MOGRE学习笔记(3)--MOGRE小项目练习
    委托、事件学习笔记
    MOGRE学习笔记(2)
    MOGRE学习笔记(1)
  • 原文地址:https://www.cnblogs.com/fangdada/p/14975286.html
Copyright © 2011-2022 走看看