博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP代码执行流程
阅读量:5153 次
发布时间:2019-06-13

本文共 925 字,大约阅读时间需要 3 分钟。

 

    怎么样?有点了解了么。说实话,单看这个,我本人是有点懵的,不过,不要怕。咱们来慢慢地看下。

    首先,在网上找的信息说PHP代码执行的顺序是这样的,第一步是词法分析,第二步是语法分析,第三步是转化为opcode,第四部也就是顺序执行这些opcode了。

    聪明如各位看到这里,再返回上面看一下这张图片,肯定就会有不一样的感觉了。咱们借用一句话来阐述这几个步骤:当PHP拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令(opcodes),然后ZEND虚拟机顺次执行这些指令完成操作。

    我们都知道,PHP本身是用C实现的,因此最终调用的也是C的函数,实际上,我们可以把PHP看做一个C开发的软件。既然如此,那么PHP的代码执行的核心也就是翻译出来的一条一条指令,在这里就是opcode。

    那么,我们就可以把opcode看成是PHP代码执行的最基本单位。所以PHP代码执行的本质也就可以理解为,我们的代码最终被翻译为一组opcode处理函数,完事之后再顺序执行。

    有了这些认知之后,我们就来看下这个opcode究竟是什么鬼。本质上一个opcode由两个参数(op1,op2)、返回值和处理函数组成。它的官方解释就是PHP脚本编译后的中间语言,类似于java中的bytecode或者是.net中的MSL。

    它的作用就是如下:

    1、编译原理的中间过程会产生一种中间代码(语言),PHP由Zend引擎(C语言编写)编译后的中间代码为Opcode然后再交由Zend引擎处理,如同C语言编译后汇编代码然后再交由汇编。

    2、生成的Opcode作为一种中间语言,可以帮助实现PHP源程序代码的不开源,如果你不想别人知道你的PHP代码是怎么写的,那你可以直接使用APC截取生成Opcode缓存文件,然后使用自己的PHP扩展加密程序对Opcode文件进行加密和解密,在Zend引擎对Opcode进行解析前进行解密然后再执行。

原文:https://blog.csdn.net/luyaran/article/details/80776167

转载于:https://www.cnblogs.com/yangjinqiang/p/10951606.html

你可能感兴趣的文章
2014.12.3 ---Thema:Node.js
查看>>
[转载]启示录:产品原则和产品评审团
查看>>
USACO Training3.3 A Game【区间Dp】 By cellur925
查看>>
修改默认input type=file 样式
查看>>
django 基础框架学习 (二)
查看>>
python学习之内存机制
查看>>
SQL思维导图总结
查看>>
清除浮动塌陷
查看>>
电影项目 (一)
查看>>
Swift加载Xib创建的Controller
查看>>
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
查看>>
每天一个Linux命令 - 【chkconfig】
查看>>
△UVA10106 - Product(大数乘法)
查看>>
golang (7) 文件操作
查看>>
关于 Object.defineProperty()
查看>>
免认证的ssh登录设置
查看>>
Win10中VMware14安装CentOS7详细步骤
查看>>
Oracle SOA Suite OverView
查看>>
APP和服务端-架构设计(二)
查看>>
基于Android2.2的联系人的基本操作
查看>>