VLD(Vulcan Logic Dumper)是一个挂钩在Zend引擎下, 并且输出PHP脚本生成的中间代码(OPCode)的扩展。 它可以在一定程序上查看Zend引擎内部的一些实现原理。
VLD扩展是一个开源的项目下载地址
<?php
$start = new DateTime();
echo $start->format("Y-m-d H:i:s");
使用VLD查看OPCode信息
php -dvld.active=1 vld.php
-dvld.active=1 使用vld扩展
-dvld.execute=1 显示值1,是否执行php文件
-dvld.verbosity=3 显示详细信息
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /var/www/html/vld.php
function name: (null)
number of ops: 14
compiled vars: !0 = $start
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > EXT_STMT
1 NEW $1 :-5
2 EXT_FCALL_BEGIN
3 DO_FCALL 0
4 EXT_FCALL_END
5 ASSIGN !0, $1
4 6 EXT_STMT
7 INIT_METHOD_CALL !0, 'format'
8 EXT_FCALL_BEGIN
9 SEND_VAL_EX 'Y-m-d+H%3Ai%3As'
10 DO_FCALL 0 $4
11 EXT_FCALL_END
12 ECHO $4
5 13 > RETURN 1
branch: # 0; line: 2- 5; sop: 0; eop: 13; out0: -2
path #1: 0,
上面是生产的opcode码。