3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a="beer on the wall"; for($i=99;$i>=1;$i--){ $x=($i==1)?"bottle":"bottles"; $b="<p>$i $x of $a, $i $x of beer.<br>"; $b.=($i==1)?"Go to the store and buy some more, 99 bottles of $a.":"Take one down and pass it around, ".($i-1)." $x of $a.</p>"; echo $b; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 3
Branch analysis from position: 42
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 28
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 3
Branch analysis from position: 42
Branch analysis from position: 3
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 3
Branch analysis from position: 42
Branch analysis from position: 3
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 28
Branch analysis from position: 23
Branch analysis from position: 28
filename:       /in/cLHP2
function name:  (null)
number of ops:  43
compiled vars:  !0 = $a, !1 = $i, !2 = $x, !3 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'beer+on+the+wall'
    4     1        ASSIGN                                                   !1, 99
          2      > JMP                                                      ->40
    5     3    >   IS_EQUAL                                                 !1, 1
          4      > JMPZ                                                     ~6, ->7
          5    >   QM_ASSIGN                                        ~7      'bottle'
          6      > JMP                                                      ->8
          7    >   QM_ASSIGN                                        ~7      'bottles'
          8    >   ASSIGN                                                   !2, ~7
    6     9        ROPE_INIT                                    11  ~10     '%3Cp%3E'
         10        ROPE_ADD                                      1  ~10     ~10, !1
         11        ROPE_ADD                                      2  ~10     ~10, '+'
         12        ROPE_ADD                                      3  ~10     ~10, !2
         13        ROPE_ADD                                      4  ~10     ~10, '+of+'
         14        ROPE_ADD                                      5  ~10     ~10, !0
         15        ROPE_ADD                                      6  ~10     ~10, '%2C+'
         16        ROPE_ADD                                      7  ~10     ~10, !1
         17        ROPE_ADD                                      8  ~10     ~10, '+'
         18        ROPE_ADD                                      9  ~10     ~10, !2
         19        ROPE_END                                     10  ~9      ~10, '+of+beer.%3Cbr%3E'
         20        ASSIGN                                                   !3, ~9
    7    21        IS_EQUAL                                                 !1, 1
         22      > JMPZ                                                     ~17, ->28
         23    >   ROPE_INIT                                     3  ~19     'Go+to+the+store+and+buy+some+more%2C+99+bottles+of+'
         24        ROPE_ADD                                      1  ~19     ~19, !0
         25        ROPE_END                                      2  ~18     ~19, '.'
         26        QM_ASSIGN                                        ~21     ~18
         27      > JMP                                                      ->37
         28    >   SUB                                              ~22     !1, 1
         29        CONCAT                                           ~23     'Take+one+down+and+pass+it+around%2C+', ~22
         30        ROPE_INIT                                     5  ~25     '+'
         31        ROPE_ADD                                      1  ~25     ~25, !2
         32        ROPE_ADD                                      2  ~25     ~25, '+of+'
         33        ROPE_ADD                                      3  ~25     ~25, !0
         34        ROPE_END                                      4  ~24     ~25, '.%3C%2Fp%3E'
         35        CONCAT                                           ~28     ~23, ~24
         36        QM_ASSIGN                                        ~21     ~28
         37    >   ASSIGN_OP                                     8          !3, ~21
    8    38        ECHO                                                     !3
    4    39        PRE_DEC                                                  !1
         40    >   IS_SMALLER_OR_EQUAL                                      1, !1
         41      > JMPNZ                                                    ~31, ->3
    9    42    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.95 ms | 1399 KiB | 13 Q