3v4l.org

run code in 300+ PHP versions simultaneously
<?php $i="abc"; for ($j=0; $j<10; $j++) { switch (1) { case 1: echo "In branch 1\n"; switch ($i) { case "ab": echo "This doesn't work... :(\n"; break; case "abcd": echo "This works!\n"; break; case "blah": echo "Hmmm, no worki\n"; break; default: echo "Inner default...\n"; } for ($blah=0; $blah<200; $blah++) { if ($blah==100) { echo "blah=$blah\n"; } } break; case 2: echo "In branch 2\n"; break; case $i: echo "In branch \$i\n"; break; case 4: echo "In branch 4\n"; break; default: echo "Hi, I'm default\n"; break; } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 3
Branch analysis from position: 51
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 5, Position 2 = 12
Branch analysis from position: 5
2 jumps found. (Code = 44) Position 1 = 7, Position 2 = 40
Branch analysis from position: 7
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 42
Branch analysis from position: 9
2 jumps found. (Code = 44) Position 1 = 11, Position 2 = 44
Branch analysis from position: 11
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 3
Branch analysis from position: 51
Branch analysis from position: 3
Branch analysis from position: 44
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
Branch analysis from position: 42
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
Branch analysis from position: 12
5 jumps found. (Code = 188) Position 1 = 21, Position 2 = 23, Position 3 = 25, Position 4 = 27, Position 5 = 14
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 30
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
Branch analysis from position: 30
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 36
Branch analysis from position: 32
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 30
Branch analysis from position: 39
Branch analysis from position: 30
Branch analysis from position: 36
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 21
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 23
Branch analysis from position: 18
2 jumps found. (Code = 44) Position 1 = 20, Position 2 = 25
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
Branch analysis from position: 25
Branch analysis from position: 23
Branch analysis from position: 21
filename:       /in/CFddc
function name:  (null)
number of ops:  52
compiled vars:  !0 = $i, !1 = $j, !2 = $blah
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'abc'
    5     1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->49
    7     3    >   IS_EQUAL                                                 1, 1
          4      > JMPNZ                                                    ~5, ->12
   28     5    >   IS_EQUAL                                                 1, 2
          6      > JMPNZ                                                    ~5, ->40
   31     7    >   IS_EQUAL                                                 !0, 1
          8      > JMPNZ                                                    ~5, ->42
   34     9    >   IS_EQUAL                                                 1, 4
         10      > JMPNZ                                                    ~5, ->44
         11    > > JMP                                                      ->46
    8    12    >   ECHO                                                     'In+branch+1%0A'
    9    13      > SWITCH_STRING                                            !0, [ 'ab':->21, 'abcd':->23, 'blah':->25, ], ->27
   10    14    >   IS_EQUAL                                                 !0, 'ab'
         15      > JMPNZ                                                    ~6, ->21
   13    16    >   IS_EQUAL                                                 !0, 'abcd'
         17      > JMPNZ                                                    ~6, ->23
   16    18    >   IS_EQUAL                                                 !0, 'blah'
         19      > JMPNZ                                                    ~6, ->25
         20    > > JMP                                                      ->27
   11    21    >   ECHO                                                     'This+doesn%27t+work...+%3A%28%0A'
   12    22      > JMP                                                      ->28
   14    23    >   ECHO                                                     'This+works%21%0A'
   15    24      > JMP                                                      ->28
   17    25    >   ECHO                                                     'Hmmm%2C+no+worki%0A'
   18    26      > JMP                                                      ->28
   20    27    >   ECHO                                                     'Inner+default...%0A'
   22    28    >   ASSIGN                                                   !2, 0
         29      > JMP                                                      ->37
   23    30    >   IS_EQUAL                                                 !2, 100
         31      > JMPZ                                                     ~8, ->36
   24    32    >   ROPE_INIT                                     3  ~10     'blah%3D'
         33        ROPE_ADD                                      1  ~10     ~10, !2
         34        ROPE_END                                      2  ~9      ~10, '%0A'
         35        ECHO                                                     ~9
   22    36    >   PRE_INC                                                  !2
         37    >   IS_SMALLER                                               !2, 200
         38      > JMPNZ                                                    ~13, ->30
   27    39    > > JMP                                                      ->48
   29    40    >   ECHO                                                     'In+branch+2%0A'
   30    41      > JMP                                                      ->48
   32    42    >   ECHO                                                     'In+branch+%24i%0A'
   33    43      > JMP                                                      ->48
   35    44    >   ECHO                                                     'In+branch+4%0A'
   36    45      > JMP                                                      ->48
   38    46    >   ECHO                                                     'Hi%2C+I%27m+default%0A'
   39    47      > JMP                                                      ->48
    5    48    >   PRE_INC                                                  !1
         49    >   IS_SMALLER                                               !1, 10
         50      > JMPNZ                                                    ~15, ->3
   41    51    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.34 ms | 1403 KiB | 13 Q