位置: 编程技术 - 正文

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实现验证用户名与邮箱功能

  • 个人独资企业需要监事吗
  • 油费预付卡如何开发票
  • 退回的留抵增值税怎么入账
  • 物业公司可以开什么项目的发票
  • 公司购买工装计入什么费用
  • 道路施工企业的财务核算包括
  • 固定资产出售税务处理方法
  • 给职工买的意外险怎么做账
  • 小规模纳税人需要汇算清缴吗
  • 自然人转让股权税收筹划
  • 挂靠行为应当如何纳税?
  • 建筑业劳务分包怎样算税
  • 生产人员社保计入哪个科目
  • 建筑业预交增值税最新政策
  • 企业所得税的计算公式及实例
  • 给别人的返利是属于什么费用
  • 帮别的公司代销产品,对方公司不开具发票怎么做帐
  • 企业增加值的计算
  • 季度资产总额怎么填写
  • 自查以前年度补税需调帐吗
  • 开发票时已交的税金怎么做帐?
  • 公司为员工购买社保流程
  • 公司固定资产出售给个人
  • 网线超五类好还是六类好
  • 利用php计算1+2+3+...+100
  • 双色球python算法
  • css实现轮播图侧边阴影效果
  • 核电站弃置费用怎么算
  • web前端面试题最新
  • yolov5中使用的限制目标宽高的方法防止梯度爆炸
  • 外贸企业购货合同要交印花税吗
  • 库存现金清零
  • 专票退税是什么意思
  • content security policy blob
  • 【深度学习】AI一键换天
  • php通讯
  • 年终奖要计入工资吗
  • 普通发票不满8项怎么开明细
  • pyqt 菜单
  • 股东分红后股票会涨吗
  • 如何解决安装包解析错误
  • sql建立聚集索引语句
  • 电商行业退货退款流程
  • 会计凭证的保管期限什么时候调整的
  • 基础电信是什么
  • 会计税法的差异
  • 资产组可收回金额包含完全商誉吗
  • 定额转查账征收
  • 申请财产损失会计分录
  • 固定资产暂估折旧怎么算
  • 预付加油款收到发票怎么处理
  • 一次性伤残就业补助金有时间限制吗
  • 医保卡收到钱
  • 以前年度发票退回了不重开怎么处理
  • 下列项目的进项税额可以从销项税额中抵扣的是()
  • 收入与成本不配合
  • 小微企业a201010表怎么填
  • 物流公司挂靠车辆如何做账?
  • 利润表中的营业收入怎么算出来的
  • 收到现金支票没有盖章
  • mysql中having什么意思
  • 远程桌面登录显示其他用户
  • ubuntu for windows
  • linux实用技巧
  • centos7 ethtool
  • win7系统如何删除隐藏文件
  • windows xp玩lol
  • 利用python进行
  • dos批处理文件的扩展名
  • fastcgi iis
  • 使用 jQuery.ajax 上传带文件的表单遇到的问题
  • shell脚本计算执行时间
  • Javascript valueOf 使用方法
  • 自然人电子税务局网页端
  • 居民与非居民的区别国际金融
  • 车辆购置税怎样做账
  • 深圳车牌注销需要车辆到场吗
  • 出口退税申报已通过,又被删除,报关单号能用吗
  • 金坛归属南京
  • 部落冲突显示此不论描述无效
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设