A set of Docker images to test out PHP code against the interpreter to see the resulting opcodes with multiple PHP versions.
Edit the test.php file with the code you would like to test. From there, run the bash/PowerShell script to build the containers and test the code.
./run.sh
.\run.ps1
<?php $x = 'a'; $y = $x.' b'; echo $y; $x = 'a'; $y = "$x b"; echo $y; $x = 'a'; $y = "{$x} b"; echo $y;
branch: # 0; line: 3- 14; sop: 0; eop: 14; out1: -2 path #1: 0, Finding entry points Branch analysis from position: 0 Jump found. (Code = 62) Position 1 = -2 filename: /test.php function name: (null) number of ops: 15 compiled vars: !0 = $x, !1 = $y line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 3 0 E > ASSIGN !0, 'a' 4 1 CONCAT ~1 !0, '+b' 2 ASSIGN !1, ~1 5 3 ECHO !1 7 4 ASSIGN !0, 'a' 8 5 ADD_VAR ~4 !0 6 ADD_STRING ~4 ~4, '+b' 7 ASSIGN !1, ~4 9 8 ECHO !1 11 9 ASSIGN !0, 'a' 12 10 ADD_VAR ~7 !0 11 ADD_STRING ~7 ~7, '+b' 12 ASSIGN !1, ~7 13 13 ECHO !1 14 14 > RETURN 1 Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 filename: /test.php function name: (null) number of ops: 15 compiled vars: !0 = $x, !1 = $y line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 3 0 E > ASSIGN !0, 'a' 4 1 CONCAT ~3 !0, '+b' 2 ASSIGN !1, ~3 5 3 ECHO !1 7 4 ASSIGN !0, 'a' 8 5 NOP 6 FAST_CONCAT ~6 !0, '+b' 7 ASSIGN !1, ~6 9 8 ECHO !1 11 9 ASSIGN !0, 'a' 12 10 NOP 11 FAST_CONCAT ~9 !0, '+b' 12 ASSIGN !1, ~9 13 13 ECHO !1 14 14 > RETURN 1 branch: # 0; line: 3- 14; sop: 0; eop: 14; out0: -2 path #1: 0, Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 filename: /test.php function name: (null) number of ops: 15 compiled vars: !0 = $x, !1 = $y line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 3 0 E > ASSIGN !0, 'a' 4 1 CONCAT ~3 !0, '+b' 2 ASSIGN !1, ~3 5 3 ECHO !1 7 4 ASSIGN !0, 'a' 8 5 NOP 6 FAST_CONCAT ~6 !0, '+b' 7 ASSIGN !1, ~6 9 8 ECHO !1 11 9 ASSIGN !0, 'a' 12 10 NOP 11 FAST_CONCAT ~9 !0, '+b' 12 ASSIGN !1, ~9 13 13 ECHO !1 14 14 > RETURN 1 branch: # 0; line: 3- 14; sop: 0; eop: 14; out0: -2 path #1: 0, Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 filename: /test.php function name: (null) number of ops: 15 compiled vars: !0 = $x, !1 = $y line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 3 0 E > ASSIGN !0, 'a' 4 1 CONCAT ~3 !0, '+b' 2 ASSIGN !1, ~3 5 3 ECHO !1 7 4 ASSIGN !0, 'a' 8 5 NOP 6 FAST_CONCAT ~6 !0, '+b' 7 ASSIGN !1, ~6 9 8 ECHO !1 11 9 ASSIGN !0, 'a' 12 10 NOP 11 FAST_CONCAT ~9 !0, '+b' 12 ASSIGN !1, ~9 13 13 ECHO !1 14 14 > RETURN 1 branch: # 0; line: 3- 14; sop: 0; eop: 14; out0: -2 path #1: 0,
Contributions are always welcome and happy testing!