位置: 编程技术 - 正文

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

  • 收取承包费如何交税
  • 小规模纳税人定期定额征收的怎么报税
  • 补贴收入属于什么分配
  • 收到返款计入什么科目
  • 通用机打发票内容可以随便写吗
  • 个人所得税如果两份工作怎么扣
  • 电子税务局怎么注册
  • 汇算清缴上年度金额怎么填
  • 房地产企业营改增前都交那些税
  • 税法对固定资产大修理
  • 会计凭证整理的要求有哪些
  • 个人转让著作权交什么税
  • 外经证提交一般要多久可以通过
  • 单位车辆折旧完怎么处理
  • 购买商品有运费的分录
  • 无偿使用期限为多少年
  • 长期股权投资出售比例计算
  • 不付供应商尾款了怎么清账
  • 印花税到底什么通俗一点
  • 货物已到发票未到怎么做账
  • 内销征税是什么意思
  • 政府补助的会计核算
  • 支付境外佣金的记账凭证
  • 进口报关单是什么样子的
  • 企业注销固定资产处理
  • 营改增建筑业
  • 非公党费返还
  • 销售不动产土地增值税纳税义务时间
  • 公司回购股份有什么好处
  • 在win7系统中,添加打印机驱动程序
  • 虎杖的养殖方法和用量
  • windows10 电脑
  • 网络打印机找不到网络路径
  • PHP:curl_multi_info_read()的用法_cURL函数
  • 教育发展基金计提比例
  • safe software
  • 卡特迈国家公园地图
  • 武侯祠红墙在哪个门
  • 短缺材料赔偿会计分录
  • 永续债进什么科目
  • 报销差旅费的会计分录为什么是其他应收款
  • python读取全部文件
  • 增值税电子发票怎么领用
  • 小规模纳税人如何开专票
  • 公司租赁车辆的保险费可以扣除
  • 开发产品的成本
  • 资本成本在财务报表中怎么体现
  • 个体户核定征收和查账征收哪个好
  • 个人所得税进一步改革方向
  • 企业低值易耗品的摊销方法有
  • sql server 2008怎么用
  • sqlserver2012完全卸载
  • sql server数据库怎么使用
  • 暂时性差异和永久性差异怎么区分
  • 员工工资可以当月计提当月发放吗
  • 查账征收和核定征收有什么区别
  • 金税盘维护费应该在那个表填写
  • 营业执照丢失公告后几天可以办注销
  • 进出口 外汇
  • 换货与退货
  • 免税农产品怎么开发票
  • 银行回单nxt
  • 辅助生产车间的制造费用不通过制造费用核算
  • 红字发票抵扣时增值税纳税申报表如何处理
  • 土地出让金抵减销项税计算
  • 一次性收入怎么计税
  • sqlserver数据库和mysql区别
  • win8打开桌面
  • windowxp怎么取消开机密码
  • win10怎么显示磁盘已用空间
  • node.js gui
  • gpio接口
  • 用jQuery实现优酷首页轮播图
  • 批处理命令不允许用户在文件夹内的文件
  • adb远程调试工具
  • javascript定义数组的方法
  • js几种类型
  • 基于javascript的毕业设计
  • 重庆黄桷垭在什么地方
  • 国,地税纳税申报表是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设