3v4l.org

run code in 300+ PHP versions simultaneously
<?php hell: try { $str = PHP; $str .= has; $str .= barewords; $str .= kinda; echo $str; } catch (\Error $e) { if (str_contains($e->getMessage(), 'Undefined constant')) { $constValue = substr($e->getMessage(), 20, -1); define($constValue, $constValue . ' '); goto hell; } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Found catch point at position: 11
Branch analysis from position: 11
2 jumps found. (Code = 107) Position 1 = 12, Position 2 = -2
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 33
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 0
Branch analysis from position: 0
Branch analysis from position: 33
filename:       /in/vo0sa
function name:  (null)
number of ops:  34
compiled vars:  !0 = $str, !1 = $e, !2 = $constValue
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   NOP                                                      
    5     1        FETCH_CONSTANT                                   ~3      'PHP'
          2        ASSIGN                                                   !0, ~3
    6     3        FETCH_CONSTANT                                   ~5      'has'
          4        ASSIGN_OP                                     8          !0, ~5
    7     5        FETCH_CONSTANT                                   ~7      'barewords'
          6        ASSIGN_OP                                     8          !0, ~7
    8     7        FETCH_CONSTANT                                   ~9      'kinda'
          8        ASSIGN_OP                                     8          !0, ~9
    9     9        ECHO                                                     !0
         10      > JMP                                                      ->33
   10    11  E > > CATCH                                       last         'Error'
   11    12    >   INIT_FCALL                                               'str_contains'
         13        INIT_METHOD_CALL                                         !1, 'getMessage'
         14        DO_FCALL                                      0  $11     
         15        SEND_VAR                                                 $11
         16        SEND_VAL                                                 'Undefined+constant'
         17        DO_ICALL                                         $12     
         18      > JMPZ                                                     $12, ->33
   12    19    >   INIT_FCALL                                               'substr'
         20        INIT_METHOD_CALL                                         !1, 'getMessage'
         21        DO_FCALL                                      0  $13     
         22        SEND_VAR                                                 $13
         23        SEND_VAL                                                 20
         24        SEND_VAL                                                 -1
         25        DO_ICALL                                         $14     
         26        ASSIGN                                                   !2, $14
   13    27        INIT_FCALL                                               'define'
         28        SEND_VAR                                                 !2
         29        CONCAT                                           ~16     !2, '+'
         30        SEND_VAL                                                 ~16
         31        DO_ICALL                                                 
   14    32      > JMP                                                      ->0
   16    33    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
169.78 ms | 1396 KiB | 19 Q