3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(0); $a = array(); $a['foo'] = "Foo"; $a['foo']['bar'] = "Bar"; echo $a['foo']; //*Boo // Baroo // FooBar // Bar // Foo // nic echo "\n"; for ($i = 0; $i <= 2; $i++) { $foo .= $i % 2; } $foo -= 010; echo $foo; //*2 // 0 // -10 // -8 // 8 // 91 // 93 // nic echo "\n"; $foo = "a"; for ($i = 0; $i < 26; $i++) { $foo++; } echo $foo; // a26 //*aa // nic // a // A // z // 27 // 26 // 123 echo "\n"; $arr = range(1,9); $arr[5] = $arr[0] + $arr[5] == 7; $foo = in_array(10, $arr); echo $foo ? 'true' : 'false'; //*true // false echo "\n"; $a = 1; $a += ++$a + ++$a + $a++ + ++$a; echo $a; // 29 // 28 // 27 // 26 // 25 // 24 // 23 // 22 // 21 // 20 // 19 //*18 // 17 // 16 // 15 // 14 // 13 // 12 // 11 // 10 // 9 // 8 // 7 // 6 // 5 // 4 // 3 // 2 // 1 // 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
2 jumps found. (Code = 44) Position 1 = 19, Position 2 = 14
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
2 jumps found. (Code = 44) Position 1 = 29, Position 2 = 25
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 48, Position 2 = 50
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
2 jumps found. (Code = 44) Position 1 = 29, Position 2 = 25
Branch analysis from position: 29
Branch analysis from position: 25
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 19, Position 2 = 14
Branch analysis from position: 19
Branch analysis from position: 14
filename:       /in/Vb2Oa
function name:  (null)
number of ops:  64
compiled vars:  !0 = $a, !1 = $i, !2 = $foo, !3 = $arr
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'error_reporting'
          1        SEND_VAL                                                 0
          2        DO_ICALL                                                 
    4     3        ASSIGN                                                   !0, <array>
    5     4        ASSIGN_DIM                                               !0, 'foo'
          5        OP_DATA                                                  'Foo'
    6     6        FETCH_DIM_W                                      $7      !0, 'foo'
          7        ASSIGN_DIM                                               $7, 'bar'
          8        OP_DATA                                                  'Bar'
    7     9        FETCH_DIM_R                                      ~9      !0, 'foo'
         10        ECHO                                                     ~9
   15    11        ECHO                                                     '%0A'
   17    12        ASSIGN                                                   !1, 0
         13      > JMP                                                      ->17
   18    14    >   MOD                                              ~11     !1, 2
         15        ASSIGN_OP                                     8          !2, ~11
   17    16        PRE_INC                                                  !1
         17    >   IS_SMALLER_OR_EQUAL                                      !1, 2
         18      > JMPNZ                                                    ~14, ->14
   20    19    >   ASSIGN_OP                                     2          !2, 8
   21    20        ECHO                                                     !2
   31    21        ECHO                                                     '%0A'
   33    22        ASSIGN                                                   !2, 'a'
   34    23        ASSIGN                                                   !1, 0
         24      > JMP                                                      ->27
   35    25    >   PRE_INC                                                  !2
   34    26        PRE_INC                                                  !1
         27    >   IS_SMALLER                                               !1, 26
         28      > JMPNZ                                                    ~20, ->25
   37    29    >   ECHO                                                     !2
   48    30        ECHO                                                     '%0A'
   50    31        INIT_FCALL                                               'range'
         32        SEND_VAL                                                 1
         33        SEND_VAL                                                 9
         34        DO_ICALL                                         $21     
         35        ASSIGN                                                   !3, $21
   51    36        FETCH_DIM_R                                      ~24     !3, 0
         37        FETCH_DIM_R                                      ~25     !3, 5
         38        ADD                                              ~26     ~24, ~25
         39        IS_EQUAL                                         ~27     ~26, 7
         40        ASSIGN_DIM                                               !3, 5
         41        OP_DATA                                                  ~27
   52    42        INIT_FCALL                                               'in_array'
         43        SEND_VAL                                                 10
         44        SEND_VAR                                                 !3
         45        DO_ICALL                                         $28     
         46        ASSIGN                                                   !2, $28
   53    47      > JMPZ                                                     !2, ->50
         48    >   QM_ASSIGN                                        ~30     'true'
         49      > JMP                                                      ->51
         50    >   QM_ASSIGN                                        ~30     'false'
         51    >   ECHO                                                     ~30
   57    52        ECHO                                                     '%0A'
   59    53        ASSIGN                                                   !0, 1
   60    54        PRE_INC                                          ~32     !0
         55        PRE_INC                                          ~33     !0
         56        ADD                                              ~34     ~32, ~33
         57        POST_INC                                         ~35     !0
         58        ADD                                              ~36     ~34, ~35
         59        PRE_INC                                          ~37     !0
         60        ADD                                              ~38     ~36, ~37
         61        ASSIGN_OP                                     1          !0, ~38
   61    62        ECHO                                                     !0
   91    63      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.35 ms | 945 KiB | 20 Q