3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = ''; var_dump(isset($a->b)); $a = 'a'; var_dump(isset($a->b)); $a = '0'; var_dump(isset($a->b)); $a = ''; var_dump(isset($a['b'])); $a = 'a'; var_dump(isset($a['b'])); $a = '0'; var_dump(isset($a['b'])); $simpleString = "Bogus String Text"; echo isset($simpleString->wrong)?"bug\n":"ok\n"; echo isset($simpleString["wrong"])?"ok\n":"bug\n"; echo isset($simpleString[-1])?"bug\n":"ok\n"; echo isset($simpleString[0])?"ok\n":"bug\n"; echo isset($simpleString["0"])?"ok\n":"bug\n"; echo isset($simpleString["16"])?"ok\n":"bug\n"; echo isset($simpleString["17"])?"bug\n":"ok\n"; echo isset($simpleString["wrong"][0])?"bug\n":"ok\n"; echo $simpleString->wrong === null?"ok\n":"bug\n"; echo $simpleString["wrong"] === "B"?"ok\n":"bug\n"; echo $simpleString["0"] === "B"?"ok\n":"bug\n"; $simpleString["wrong"] = "f"; echo $simpleString["0"] === "f"?"ok\n":"bug\n";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 33, Position 2 = 35
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 41
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 42
Branch analysis from position: 42
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
2 jumps found. (Code = 43) Position 1 = 51, Position 2 = 53
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 54
Branch analysis from position: 54
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 59
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 60
Branch analysis from position: 60
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 65
Branch analysis from position: 63
1 jumps found. (Code = 42) Position 1 = 66
Branch analysis from position: 66
2 jumps found. (Code = 43) Position 1 = 69, Position 2 = 71
Branch analysis from position: 69
1 jumps found. (Code = 42) Position 1 = 72
Branch analysis from position: 72
2 jumps found. (Code = 43) Position 1 = 76, Position 2 = 78
Branch analysis from position: 76
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
2 jumps found. (Code = 43) Position 1 = 83, Position 2 = 85
Branch analysis from position: 83
1 jumps found. (Code = 42) Position 1 = 86
Branch analysis from position: 86
2 jumps found. (Code = 43) Position 1 = 90, Position 2 = 92
Branch analysis from position: 90
1 jumps found. (Code = 42) Position 1 = 93
Branch analysis from position: 93
2 jumps found. (Code = 43) Position 1 = 97, Position 2 = 99
Branch analysis from position: 97
1 jumps found. (Code = 42) Position 1 = 100
Branch analysis from position: 100
2 jumps found. (Code = 43) Position 1 = 106, Position 2 = 108
Branch analysis from position: 106
1 jumps found. (Code = 42) Position 1 = 109
Branch analysis from position: 109
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 108
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 99
2 jumps found. (Code = 43) Position 1 = 106, Position 2 = 108
Branch analysis from position: 106
Branch analysis from position: 108
Branch analysis from position: 92
2 jumps found. (Code = 43) Position 1 = 97, Position 2 = 99
Branch analysis from position: 97
Branch analysis from position: 99
Branch analysis from position: 85
2 jumps found. (Code = 43) Position 1 = 90, Position 2 = 92
Branch analysis from position: 90
Branch analysis from position: 92
Branch analysis from position: 78
2 jumps found. (Code = 43) Position 1 = 83, Position 2 = 85
Branch analysis from position: 83
Branch analysis from position: 85
Branch analysis from position: 71
2 jumps found. (Code = 43) Position 1 = 76, Position 2 = 78
Branch analysis from position: 76
Branch analysis from position: 78
Branch analysis from position: 65
2 jumps found. (Code = 43) Position 1 = 69, Position 2 = 71
Branch analysis from position: 69
Branch analysis from position: 71
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 65
Branch analysis from position: 63
Branch analysis from position: 65
Branch analysis from position: 53
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 59
Branch analysis from position: 57
Branch analysis from position: 59
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 51, Position 2 = 53
Branch analysis from position: 51
Branch analysis from position: 53
Branch analysis from position: 41
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
Branch analysis from position: 47
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 41
Branch analysis from position: 39
Branch analysis from position: 41
filename:       /in/BXaud
function name:  (null)
number of ops:  111
compiled vars:  !0 = $a, !1 = $simpleString
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, ''
    4     1        INIT_FCALL                                               'var_dump'
          2        ISSET_ISEMPTY_PROP_OBJ                           ~3      !0, 'b'
          3        SEND_VAL                                                 ~3
          4        DO_ICALL                                                 
    5     5        ASSIGN                                                   !0, 'a'
    6     6        INIT_FCALL                                               'var_dump'
          7        ISSET_ISEMPTY_PROP_OBJ                           ~6      !0, 'b'
          8        SEND_VAL                                                 ~6
          9        DO_ICALL                                                 
    7    10        ASSIGN                                                   !0, '0'
    8    11        INIT_FCALL                                               'var_dump'
         12        ISSET_ISEMPTY_PROP_OBJ                           ~9      !0, 'b'
         13        SEND_VAL                                                 ~9
         14        DO_ICALL                                                 
    9    15        ASSIGN                                                   !0, ''
   10    16        INIT_FCALL                                               'var_dump'
         17        ISSET_ISEMPTY_DIM_OBJ                         0  ~12     !0, 'b'
         18        SEND_VAL                                                 ~12
         19        DO_ICALL                                                 
   11    20        ASSIGN                                                   !0, 'a'
   12    21        INIT_FCALL                                               'var_dump'
         22        ISSET_ISEMPTY_DIM_OBJ                         0  ~15     !0, 'b'
         23        SEND_VAL                                                 ~15
         24        DO_ICALL                                                 
   13    25        ASSIGN                                                   !0, '0'
   14    26        INIT_FCALL                                               'var_dump'
         27        ISSET_ISEMPTY_DIM_OBJ                         0  ~18     !0, 'b'
         28        SEND_VAL                                                 ~18
         29        DO_ICALL                                                 
   16    30        ASSIGN                                                   !1, 'Bogus+String+Text'
   17    31        ISSET_ISEMPTY_PROP_OBJ                                   !1, 'wrong'
         32      > JMPZ                                                     ~21, ->35
         33    >   QM_ASSIGN                                        ~22     'bug%0A'
         34      > JMP                                                      ->36
         35    >   QM_ASSIGN                                        ~22     'ok%0A'
         36    >   ECHO                                                     ~22
   18    37        ISSET_ISEMPTY_DIM_OBJ                         0          !1, 'wrong'
         38      > JMPZ                                                     ~23, ->41
         39    >   QM_ASSIGN                                        ~24     'ok%0A'
         40      > JMP                                                      ->42
         41    >   QM_ASSIGN                                        ~24     'bug%0A'
         42    >   ECHO                                                     ~24
   19    43        ISSET_ISEMPTY_DIM_OBJ                         0          !1, -1
         44      > JMPZ                                                     ~25, ->47
         45    >   QM_ASSIGN                                        ~26     'bug%0A'
         46      > JMP                                                      ->48
         47    >   QM_ASSIGN                                        ~26     'ok%0A'
         48    >   ECHO                                                     ~26
   20    49        ISSET_ISEMPTY_DIM_OBJ                         0          !1, 0
         50      > JMPZ                                                     ~27, ->53
         51    >   QM_ASSIGN                                        ~28     'ok%0A'
         52      > JMP                                                      ->54
         53    >   QM_ASSIGN                                        ~28     'bug%0A'
         54    >   ECHO                                                     ~28
   21    55        ISSET_ISEMPTY_DIM_OBJ                         0          !1, 0
         56      > JMPZ                                                     ~29, ->59
         57    >   QM_ASSIGN                                        ~30     'ok%0A'
         58      > JMP                                                      ->60
         59    >   QM_ASSIGN                                        ~30     'bug%0A'
         60    >   ECHO                                                     ~30
   22    61        ISSET_ISEMPTY_DIM_OBJ                         0          !1, 16
         62      > JMPZ                                                     ~31, ->65
         63    >   QM_ASSIGN                                        ~32     'ok%0A'
         64      > JMP                                                      ->66
         65    >   QM_ASSIGN                                        ~32     'bug%0A'
         66    >   ECHO                                                     ~32
   23    67        ISSET_ISEMPTY_DIM_OBJ                         0          !1, 17
         68      > JMPZ                                                     ~33, ->71
         69    >   QM_ASSIGN                                        ~34     'bug%0A'
         70      > JMP                                                      ->72
         71    >   QM_ASSIGN                                        ~34     'ok%0A'
         72    >   ECHO                                                     ~34
   24    73        FETCH_DIM_IS                                     ~35     !1, 'wrong'
         74        ISSET_ISEMPTY_DIM_OBJ                         0          ~35, 0
         75      > JMPZ                                                     ~36, ->78
         76    >   QM_ASSIGN                                        ~37     'bug%0A'
         77      > JMP                                                      ->79
         78    >   QM_ASSIGN                                        ~37     'ok%0A'
         79    >   ECHO                                                     ~37
   25    80        FETCH_OBJ_R                                      ~38     !1, 'wrong'
         81        TYPE_CHECK                                    2          ~38
         82      > JMPZ                                                     ~39, ->85
         83    >   QM_ASSIGN                                        ~40     'ok%0A'
         84      > JMP                                                      ->86
         85    >   QM_ASSIGN                                        ~40     'bug%0A'
         86    >   ECHO                                                     ~40
   26    87        FETCH_DIM_R                                      ~41     !1, 'wrong'
         88        IS_IDENTICAL                                             ~41, 'B'
         89      > JMPZ                                                     ~42, ->92
         90    >   QM_ASSIGN                                        ~43     'ok%0A'
         91      > JMP                                                      ->93
         92    >   QM_ASSIGN                                        ~43     'bug%0A'
         93    >   ECHO                                                     ~43
   27    94        FETCH_DIM_R                                      ~44     !1, 0
         95        IS_IDENTICAL                                             ~44, 'B'
         96      > JMPZ                                                     ~45, ->99
         97    >   QM_ASSIGN                                        ~46     'ok%0A'
         98      > JMP                                                      ->100
         99    >   QM_ASSIGN                                        ~46     'bug%0A'
        100    >   ECHO                                                     ~46
   28   101        ASSIGN_DIM                                               !1, 'wrong'
        102        OP_DATA                                                  'f'
   29   103        FETCH_DIM_R                                      ~48     !1, 0
        104        IS_IDENTICAL                                             ~48, 'f'
        105      > JMPZ                                                     ~49, ->108
        106    >   QM_ASSIGN                                        ~50     'ok%0A'
        107      > JMP                                                      ->109
        108    >   QM_ASSIGN                                        ~50     'bug%0A'
        109    >   ECHO                                                     ~50
        110      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.21 ms | 1408 KiB | 15 Q