位置: 编程技术 - 正文

PHP内核探索之解释器的执行过程(php解构)

编辑:rootadmin

推荐整理分享PHP内核探索之解释器的执行过程(php解构),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入理解php内核,深入理解php内核,php内涵,php内核源码,php8底层内核,php内核剖析,php内核源码,深入理解php内核,内容如对您有帮助,希望把文章链接给更多的朋友!

cli(Command Line Interface)即PHP的命令行模式,现在此SAPI是默认安装的,我们在服务器上安装完PHP之后,一般会生成一个可执行文件,假设此文件为/usr/local/bin/php ,那么我们在SHELL下可以用以下命令来执行一个PHP脚本:

以CLI SAPI为例来对php执行核心部分进行解析。CLI是php命令行模式,此SAPI是默认安装的,在服务器端安装过PHP后,生成以一个可执行文件,可以在shell中调用PHP命令来执行。

执行流程:

解析命令行参数;

初始化环境;

编译执行PHP代码;

PHP内核探索之解释器的执行过程(php解构)

清理环境,退出;

在第3个阶段中,如何执行PHP脚本的:

通过调用php_execute_script( handle_file )来完成第三阶段,该函数最终会调用zend_execute_scipts( … ) ,这个函数是一个可变参函数,可以一次执行多个PHP脚本。

在zend_execut_scripts(…..)函数中核心调用了(zend_compile_file)( compile_file ), (*zend_execute)( zend_op_array )这两个函数;

通过调用zend_compile_file编译参数指定的php脚本文件,该函数会返回一个zend_op_array的结构指针;

zend_execute传入的参数是zend_compile_file的返回值,就开始执行opcode了。

这两个函数是Zend API,是一个函数指针,在引擎初始化的时候回赋值具体的方法。

ps.:那为什么这两个Zend API是函数指针呢?

在引擎初始化的时候,zend_execute和zend_compile_file会在引擎初始化的时候指向默认的方法。我们可以在编译和执行重写函数的指向,这样就为我们扩展引擎时留下了钩子。例如:vld将zend_execute和zend_compile_file指向自己对原始函数封装后的函数,添加了opcode信息的输出。

yii2.0实现验证用户名与邮箱功能 本文为大家分享了yii2.0实现验证用户名与邮箱功能的相关代码,具体内容如下视图signup.php代码:phpuseyiihelpersHtml;useyiibootstrapActiveForm;/*@var$thisyiiwebVie

WordPress中使主题支持小工具以及添加插件启用函数 让主题支持小工具WordPress的小工具(widget)是一大特色,它让用户自由拖动组合内容,而且任何插件和主题都可以添加一个额外的小工具,增加扩展性

WordPress主题中添加文章列表页页码导航的PHP代码实例 WordPress默认给主题开发者的建议是在文章列表底部提供上下页按钮,所以没有提供直接用在文章列表下的分页导航的函数。这里我提供一个比较完善的

标签: php解构

本文链接地址:https://www.jiuchutong.com/biancheng/276424.html 转载请保留说明!

上一篇:PHP内核探索之变量(php核心编程)

下一篇:yii2.0实现验证用户名与邮箱功能

  • 新注册公司没有员工怎么报个税
  • 工程附加税怎么计算
  • 什么公司可以开普票
  • 家庭保洁服务价格表
  • 报税时提示缺少相关组件怎么解决
  • 社会团体财务手册怎么写
  • 往法人账户转备用金
  • 固定资产变动包括哪些内容
  • 企业所得税的申报方式
  • 房地产公司环境
  • 存在商业折扣的情况下,应收账款按什么金额入账?
  • 坏账准备的账务处理怎么理解
  • 员工出差住宿费计入什么科目
  • 公益性捐赠全额扣除2020年第9号文件
  • 营改增相关规定
  • 学校发票抬头类型填企业还是非企业
  • 增值税普通发票需要交税吗
  • 房产赠与税如何征收2021
  • 物业费纳税
  • 营改增后甲供材税前扣除还是税后扣除?
  • 找私人贴现怎么做账
  • 现金支付奖金
  • 盈余公积的来源及主要用途包括哪些
  • 净资产收益率公式推导
  • 跨月的成本费用如何,调整
  • 知识产权 申请
  • 支付工资属于费用吗
  • 房地产消防工程入什么科目
  • 未核定税种是谁的责任
  • php的oop的理解
  • 测试费计入什么会计科目
  • vue安装使用
  • mkdir命令怎么用
  • php简单获取网站的方法
  • php eval绕过
  • vim操作命令
  • nsloopup命令
  • 什么是稳岗补贴是给企业发放吗
  • 工业企业提供劳务
  • 私车公用维修费用谁出
  • 合并报表调整分录理解
  • 累计净值是怎么计算的
  • 一般纳税人每月开票不能超过多少
  • 增值税申报抵扣联数据没有
  • 分公司计提递延所得税吗
  • 红冲发票是什么影响
  • 房地产企业取得土地的契税如何记账
  • 应收应付抹零账务处理
  • 跨年取得的费用票怎么做账
  • 预收工程款怎么做分录
  • 应付工资可以挂账多长时间
  • 预收账款结转收入分录
  • 固定资产折旧成本票据类型
  • 取得工程款发票计入什么会计科目里
  • 福利部门的福利有哪些
  • 银行理财产品算银行存款吗
  • mysql5.7.22安装教程图解
  • 安装sql2008时出现以下错误
  • ubuntu怎么编辑文件
  • 怎么用手机号查快递
  • winxp系统安装教程
  • 苹果电脑bim
  • Ubuntu系统怎么设置IP
  • process32first 进程信息为空
  • windows关机音乐
  • 电脑系统 win7
  • javascript definitive guide
  • 学习雷锋好榜样歌词
  • nodejs创建vue
  • bat修改ip地址
  • python winreg
  • Jquery AJAX POST与GET之间的区别详细介绍
  • python for循环删除元素
  • Python Sql数据库增删改查操作简单封装
  • python 汉诺塔
  • 云南省税务申报流程
  • 企业所得税调整情况说明
  • 苏州税务ukey客服电话
  • 一般纳税人增值税怎么算
  • 农村墓地规划土地使用程序和规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设