<?php
/*
* Question Mark Assign, used twice inside a question mark assign to temporarily assign result as value1 (this is followed up with an ASSIGN bytecode)
* Opcode 编号: 22
*/
function A(){
echo 1?2:3;
}
function B(){
$b = 0;
$a = $b > 1 ? 10: 11;
}
?>
函数名: (null)
编译后的变量: none
行号 | # | 操作 | 读取 | 扩展 | 返回 | 操作数 |
---|---|---|---|---|---|---|
6 | 0 | NOP | ||||
10 | 1 | NOP | ||||
14 | 2 | RETURN | 1 |
函数名: A
编译后的变量: none
行号 | # | 操作 | 读取 | 扩展 | 返回 | 操作数 |
---|---|---|---|---|---|---|
7 | 0 | JMPZ | 1,->3 | |||
1 | QM_ASSIGN | ~0 | 2 | |||
2 | JMP | ->4 | ||||
3 | QM_ASSIGN | ~0 | 3 | |||
4 | ECHO | ~0 | ||||
8 | 5 | RETURN | null |
函数名: B
编译后的变量: !0=$b, !1=$a
行号 | # | 操作 | 读取 | 扩展 | 返回 | 操作数 |
---|---|---|---|---|---|---|
11 | 0 | ASSIGN | !0,0 | |||
12 | 1 | IS_SMALLER | ~1 | 1,!0 | ||
2 | JMPZ | ~1,->5 | ||||
3 | QM_ASSIGN | ~2 | 10 | |||
4 | JMP | ->6 | ||||
5 | QM_ASSIGN | ~2 | 11 | |||
6 | ASSIGN | !1,~2 | ||||
13 | 7 | RETURN | null |