3v4l.org

run code in 300+ PHP versions simultaneously
<?php for($i=99;$i>-1;$i--){echo ($i==0?"no more":$i)." bottle".($i==1?"":"s")." of beer on the wall, ".($i==0?"no more":$i)." bottle".($i==1?"":"s")." of beer.\n".($i==0?"go to the store and buy some more, ":"take one down, pass it around, ").($i==0?99:($i==1?"no more":$i-1))." bottle".($i==2?"":"s")." of beer on the wall\n";}
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 57
Branch analysis from position: 57
2 jumps found. (Code = 44) Position 1 = 59, Position 2 = 2
Branch analysis from position: 59
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 2
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 6
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 12
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 26
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 33
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 59, Position 2 = 2
Branch analysis from position: 59
Branch analysis from position: 2
Branch analysis from position: 52
2 jumps found. (Code = 44) Position 1 = 59, Position 2 = 2
Branch analysis from position: 59
Branch analysis from position: 2
Branch analysis from position: 39
2 jumps found. (Code = 43) Position 1 = 41, Position 2 = 43
Branch analysis from position: 41
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
Branch analysis from position: 52
Branch analysis from position: 43
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
Branch analysis from position: 52
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
Branch analysis from position: 39
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 33
Branch analysis from position: 31
Branch analysis from position: 33
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 26
Branch analysis from position: 24
Branch analysis from position: 26
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
Branch analysis from position: 19
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 12
Branch analysis from position: 10
Branch analysis from position: 12
filename:       /in/DSkDF
function name:  (null)
number of ops:  60
compiled vars:  !0 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 99
          1      > JMP                                                      ->57
          2    >   IS_EQUAL                                                 !0, 0
          3      > JMPZ                                                     ~2, ->6
          4    >   QM_ASSIGN                                        ~3      'no+more'
          5      > JMP                                                      ->7
          6    >   QM_ASSIGN                                        ~3      !0
          7    >   CONCAT                                           ~4      ~3, '+bottle'
          8        IS_EQUAL                                                 !0, 1
          9      > JMPZ                                                     ~5, ->12
         10    >   QM_ASSIGN                                        ~6      ''
         11      > JMP                                                      ->13
         12    >   QM_ASSIGN                                        ~6      's'
         13    >   CONCAT                                           ~7      ~4, ~6
         14        CONCAT                                           ~8      ~7, '+of+beer+on+the+wall%2C+'
         15        IS_EQUAL                                                 !0, 0
         16      > JMPZ                                                     ~9, ->19
         17    >   QM_ASSIGN                                        ~10     'no+more'
         18      > JMP                                                      ->20
         19    >   QM_ASSIGN                                        ~10     !0
         20    >   CONCAT                                           ~11     ~8, ~10
         21        CONCAT                                           ~12     ~11, '+bottle'
         22        IS_EQUAL                                                 !0, 1
         23      > JMPZ                                                     ~13, ->26
         24    >   QM_ASSIGN                                        ~14     ''
         25      > JMP                                                      ->27
         26    >   QM_ASSIGN                                        ~14     's'
         27    >   CONCAT                                           ~15     ~12, ~14
         28        CONCAT                                           ~16     ~15, '+of+beer.%0A'
         29        IS_EQUAL                                                 !0, 0
         30      > JMPZ                                                     ~17, ->33
         31    >   QM_ASSIGN                                        ~18     'go+to+the+store+and+buy+some+more%2C+'
         32      > JMP                                                      ->34
         33    >   QM_ASSIGN                                        ~18     'take+one+down%2C+pass+it+around%2C+'
         34    >   CONCAT                                           ~19     ~16, ~18
         35        IS_EQUAL                                                 !0, 0
         36      > JMPZ                                                     ~20, ->39
         37    >   QM_ASSIGN                                        ~21     99
         38      > JMP                                                      ->46
         39    >   IS_EQUAL                                                 !0, 1
         40      > JMPZ                                                     ~22, ->43
         41    >   QM_ASSIGN                                        ~23     'no+more'
         42      > JMP                                                      ->45
         43    >   SUB                                              ~24     !0, 1
         44        QM_ASSIGN                                        ~23     ~24
         45    >   QM_ASSIGN                                        ~21     ~23
         46    >   CONCAT                                           ~25     ~19, ~21
         47        CONCAT                                           ~26     ~25, '+bottle'
         48        IS_EQUAL                                                 !0, 2
         49      > JMPZ                                                     ~27, ->52
         50    >   QM_ASSIGN                                        ~28     ''
         51      > JMP                                                      ->53
         52    >   QM_ASSIGN                                        ~28     's'
         53    >   CONCAT                                           ~29     ~26, ~28
         54        CONCAT                                           ~30     ~29, '+of+beer+on+the+wall%0A'
         55        ECHO                                                     ~30
         56        PRE_DEC                                                  !0
         57    >   IS_SMALLER                                               -1, !0
         58      > JMPNZ                                                    ~32, ->2
         59    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
143.48 ms | 1403 KiB | 13 Q