オペコード一覧
PHP Manual

QM_ASSIGN

PHP code

<?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 number: 22
 */
function A(){
 echo 
1?2:3;
}

function 
B(){
 
$b 0;
 
$a $b 1011;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP? ?? ?
101 NOP? ?? ?
142 RETURN? ?? 1

Function name: A

Compiled variables: none

line#op fetchextreturn operands
70 JMPZ? ?? 1,->3
?1 QM_ASSIGN? ?~0 2
?2 JMP? ?? ->4
?3 QM_ASSIGN? ?~0 3
?4 ECHO? ?? ~0
85 RETURN? ?? null

Function name: B

Compiled variables: !0=$b, !1=$a

line#op fetchextreturn operands
110 ASSIGN? ?? !0,0
121 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
137 RETURN? ?? null

オペコード一覧
PHP Manual