3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
147.98 ms | 945 KiB | 18 Q