PHP zend字节码参考?

时间:2013-12-11 06:39:27

标签: php zend-framework bytecode

是否有任何文档描述了字节码的指令结构 php zend vm ??

php website处有操作码编号和名称 但我想知道更详细的结构,如操作数大小 或语法..

是否存在zend vm字节码的任何文档,例如 flash字节码文档或intel指令参考手册 或java字节码手册??

提前谢谢

1 个答案:

答案 0 :(得分:0)

详细信息可以在Zend VM的源代码中直接找到:

https://github.com/php/php-src/blob/master/Zend/zend_vm_gen.php

对于每个Zend VM操作,都有一个本机C函数要运行,并为其指定0、1或2个操作数。完成操作后,它会给出结果以及所有其他信息。此外,该操作还保留有关传入的任何操作数的类型,结果类型和操作码的信息。

(来源:https://x-team.com/blog/learn-about-php-opcodes

但是,很难理解任何特定的使用情况。 可能的解决方案是安装Vulcan Logic Disassembler(vld)扩展。 vld挂接到Zend Engine并转储脚本的所有操作码。

(来源:https://ctors.net/2015/09/11/php_opcodes

通过此扩展,可以转储操作码和PHP脚本的内部表示。尽管仍处于测试阶段,但2016年发布的version 0.14.0还支持PHP 7.0和7.1。

最新的开发源代码和安装说明可以在作者的Github存储库中找到:

https://github.com/derickr/vld