Next: Operand Types, Previous: Operands, Up: Opcodes in PHP [Contents]
The instruction codes are defined in zend_vm_opcodes.h. Operators are converted to corresponding instruction codes when PHP scripts are compiled.
For example, the following assembly-like code represents $c = $a + $b
(You can try that yourself using phpdbg):
ADD $a, $b, ~0 # "+" operator ASSIGN $c, ~0 # "=" operator
However, not all operators have a corresponding instruction (e.g. negation,
greater than, not less than operators). For example, PHP code
$c = $a > -$b
is compiled to something like:
MUL $b, -1, ~0 # Converted to "$b * (-1)" (since PHP 7.3). IS_SMALLER ~0, $a, ~1 # Converted to "<". ASSIGN $c, ~1