3v4l.org

run code in 500+ PHP versions simultaneously
<?php $code = 'This code has parse errors"'; $olderrors = @ini_set('display_errors', true); $oldlevel = error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR); ob_start(); eval($code); $errors = ob_get_contents(); ob_end_clean(); error_reporting($oldlevel); if ($olderrors !== false) { @ini_set('display_errors', $olderrors); } if ($errors) echo "\nERRORS: $errors\n"; echo "\nDone";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 31
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 36
Branch analysis from position: 32
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
Branch analysis from position: 31
filename:       /in/5YteU
function name:  (null)
number of ops:  38
compiled vars:  !0 = $code, !1 = $olderrors, !2 = $oldlevel, !3 = $errors
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, 'This+code+has+parse+errors%22'
    5     1        BEGIN_SILENCE                                        ~5      
          2        INIT_FCALL                                                   'ini_set'
          3        SEND_VAL                                                     'display_errors'
          4        SEND_VAL                                                     <true>
          5        DO_ICALL                                             $6      
          6        END_SILENCE                                                  ~5
          7        ASSIGN                                                       !1, $6
    6     8        INIT_FCALL                                                   'error_reporting'
          9        SEND_VAL                                                     341
         10        DO_ICALL                                             $8      
         11        ASSIGN                                                       !2, $8
    8    12        INIT_FCALL                                                   'ob_start'
         13        DO_ICALL                                                     
    9    14        INCLUDE_OR_EVAL                                              !0, EVAL
   10    15        INIT_FCALL                                                   'ob_get_contents'
         16        DO_ICALL                                             $12     
         17        ASSIGN                                                       !3, $12
   11    18        INIT_FCALL                                                   'ob_end_clean'
         19        DO_ICALL                                                     
   13    20        INIT_FCALL                                                   'error_reporting'
         21        SEND_VAR                                                     !2
         22        DO_ICALL                                                     
   14    23        TYPE_CHECK                                      1018          !1
         24      > JMPZ                                                         ~16, ->31
   16    25    >   BEGIN_SILENCE                                        ~17     
         26        INIT_FCALL                                                   'ini_set'
         27        SEND_VAL                                                     'display_errors'
         28        SEND_VAR                                                     !1
         29        DO_ICALL                                                     
         30        END_SILENCE                                                  ~17
   19    31    > > JMPZ                                                         !3, ->36
         32    >   ROPE_INIT                                         3  ~20     '%0AERRORS%3A+'
         33        ROPE_ADD                                          1  ~20     ~20, !3
         34        ROPE_END                                          2  ~19     ~20, '%0A'
         35        ECHO                                                         ~19
   21    36    >   ECHO                                                         '%0ADone'
         37      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
171.96 ms | 3388 KiB | 18 Q