PHP内核学习教程之php opcode内核实现

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP内核学习教程之php opcode内核实现脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

opcode是计算机指令中的一部分,用于指定要执行的操作, 指令的格式和规范由处理器的指令规范指定。 除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显式的操作数。 这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中的值等等

通常opcode还有另一种称谓:字节码(byte codes)。 例如Java虚拟机(JVM),.NET的通用中间语言(CIL: Common IntermedITate Language)等等。

1. Opcode简介

opcode是计算机指令中的一部分,用于指定要执行的操作, 指令的格式和规范由处理器的指令规范指定。 除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显式的操作数。 这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中的值等等

通常opcode还有另一种称谓: 字节码(byte codes)。 例如Java虚拟机(JVM),.NET的通用中间语言(CIL: Common Intermeditate Language)等等

PHP中的opcode则属于前面介绍中的后着,PHP是构建在Zend虚拟机(Zend VM)之上的。PHP的opcode就是Zend虚拟机中的指令(基于Zend的中间代码)

Relevant Link:

2. PHP中的Opcode

0x1: 数据结构

PHP实现内部,opcode由如下的结构体表示

\PHP-5.6.17\Zend\zend_compile.h

<PRe class="brush:PHP;"> struct _zend_op { opcode_handler_t handler; // 执行该opcode时调用的处理函数 znode_op op1; // opcode所操作的操作数 znode_op op2; // opcode所操作的操作数 znode_op result; ulong extended_value; uint lineno; zend_uchar opcode; // opcode代码 zend_uchar op1_tyPE; zend_uchar op2_type; zend_uchar result_type; };

脚本宝典总结

以上是脚本宝典为你收集整理的PHP内核学习教程之php opcode内核实现全部内容,希望文章能够帮你解决PHP内核学习教程之php opcode内核实现所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: