3v4l.org

run code in 500+ 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:/in/CifNd:2}
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.5.0


preferences:
157.8 ms | 2764 KiB | 14 Q