3v4l.org

run code in 300+ PHP versions simultaneously
<?php spl_autoload_register(function(){ eval(<<<EVAL class Test { const ONE = "ONE"; } echo \Test::ONE, PHP_EOL; EVAL ); }); try { try { throw new \RuntimeException("ERROR"); } finally { echo "AUTOLOAD", PHP_EOL; $q = \Test::ONE; echo "YOU WON'T SEE THIS LINE", PHP_EOL; } } catch (\Exception $Error) { echo $Error->getMessage(), PHP_EOL; } ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 108) Position 1 = -2
Found catch point at position: 18
Branch analysis from position: 18
2 jumps found. (Code = 107) Position 1 = 19, Position 2 = -2
Branch analysis from position: 19
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/CifNd
function name:  (null)
number of ops:  24
compiled vars:  !0 = $q, !1 = $Error
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'spl_autoload_register'
          1        DECLARE_LAMBDA_FUNCTION                          ~2      [0]
   11     2        SEND_VAL                                                 ~2
    2     3        DO_ICALL                                                 
   15     4        NEW                                              $5      'RuntimeException'
          5        SEND_VAL_EX                                              'ERROR'
          6        DO_FCALL                                      0          
          7      > THROW                                         0          $5
   17     8*       FAST_CALL                                                ->10
          9*       JMP                                                      ->17
   18    10*       ECHO                                                     'AUTOLOAD'
         11*       ECHO                                                     '%0A'
   19    12*       FETCH_CLASS_CONSTANT                             ~7      'Test', 'ONE'
         13*       ASSIGN                                                   !0, ~7
   20    14*       ECHO                                                     'YOU+WON%27T+SEE+THIS+LINE'
         15*       ECHO                                                     '%0A'
         16*       FAST_RET                                                 
         17*       JMP                                                      ->23
   23    18  E > > CATCH                                       last         'Exception'
   24    19    >   INIT_METHOD_CALL                                         !1, 'getMessage'
         20        DO_FCALL                                      0  $9      
         21        ECHO                                                     $9
         22        ECHO                                                     '%0A'
   26    23      > RETURN                                                   1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/CifNd
function name:  {closure}
number of ops:  2
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INCLUDE_OR_EVAL                                          'class+Test%0A%7B%0A++++const+ONE+%3D+%22ONE%22%3B%0A%7D%0A%0Aecho+%5CTest%3A%3AONE%2C+PHP_EOL%3B', EVAL
   11     1      > RETURN                                                   null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
221.9 ms | 999 KiB | 14 Q