3v4l.org

run code in 500+ PHP versions simultaneously
<?php // Logo exists $logo = new stdClass(); $logo->info = array('logo' => 'test'); if (property_exists($logo, 'info') && isset($logo->info['logo']) && !empty($logo->info['logo'])) { var_dump($logo); } if (isset($logo->info['logo']) && !empty($logo->info['logo'])) { var_dump($logo); } // No logo if (property_exists($nologo, 'info') && isset($nologo->info['logo']) && !empty($nologo->info['logo'])) { var_dump($nologo); } if (isset($nologo->info['logo']) && !empty($nologo->info['logo'])) { var_dump($nologo); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 7, Position 2 = 10
Branch analysis from position: 7
2 jumps found. (Code = 46) Position 1 = 11, Position 2 = 15
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 19
Branch analysis from position: 16
2 jumps found. (Code = 46) Position 1 = 22, Position 2 = 26
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 30
Branch analysis from position: 27
2 jumps found. (Code = 46) Position 1 = 32, Position 2 = 35
Branch analysis from position: 32
2 jumps found. (Code = 46) Position 1 = 36, Position 2 = 40
Branch analysis from position: 36
2 jumps found. (Code = 43) Position 1 = 41, Position 2 = 44
Branch analysis from position: 41
2 jumps found. (Code = 46) Position 1 = 47, Position 2 = 51
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 52, Position 2 = 55
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 55
Branch analysis from position: 51
Branch analysis from position: 44
Branch analysis from position: 40
Branch analysis from position: 35
Branch analysis from position: 30
Branch analysis from position: 26
Branch analysis from position: 19
Branch analysis from position: 15
Branch analysis from position: 10
filename:       /in/qVbYK
function name:  (null)
number of ops:  56
compiled vars:  !0 = $logo, !1 = $nologo
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   NEW                                                  $2      'stdClass'
          1        DO_FCALL                                          0          
          2        ASSIGN                                                       !0, $2
    4     3        ASSIGN_OBJ                                                   !0, 'info'
          4        OP_DATA                                                      <array>
    5     5        FRAMELESS_ICALL_2                property_exists      ~6      !0, 'info'
          6      > JMPZ_EX                                              ~6      ~6, ->10
          7    >   FETCH_OBJ_IS                                         ~7      !0, 'info'
          8        ISSET_ISEMPTY_DIM_OBJ                             0  ~8      ~7, 'logo'
          9        BOOL                                                 ~6      ~8
         10    > > JMPZ_EX                                              ~6      ~6, ->15
         11    >   FETCH_OBJ_IS                                         ~9      !0, 'info'
         12        ISSET_ISEMPTY_DIM_OBJ                             1  ~10     ~9, 'logo'
         13        BOOL_NOT                                             ~11     ~10
         14        BOOL                                                 ~6      ~11
         15    > > JMPZ                                                         ~6, ->19
    6    16    >   INIT_FCALL                                                   'var_dump'
         17        SEND_VAR                                                     !0
         18        DO_ICALL                                                     
    9    19    >   FETCH_OBJ_IS                                         ~13     !0, 'info'
         20        ISSET_ISEMPTY_DIM_OBJ                             0  ~14     ~13, 'logo'
         21      > JMPZ_EX                                              ~14     ~14, ->26
         22    >   FETCH_OBJ_IS                                         ~15     !0, 'info'
         23        ISSET_ISEMPTY_DIM_OBJ                             1  ~16     ~15, 'logo'
         24        BOOL_NOT                                             ~17     ~16
         25        BOOL                                                 ~14     ~17
         26    > > JMPZ                                                         ~14, ->30
   10    27    >   INIT_FCALL                                                   'var_dump'
         28        SEND_VAR                                                     !0
         29        DO_ICALL                                                     
   14    30    >   FRAMELESS_ICALL_2                property_exists      ~19     !1, 'info'
         31      > JMPZ_EX                                              ~19     ~19, ->35
         32    >   FETCH_OBJ_IS                                         ~20     !1, 'info'
         33        ISSET_ISEMPTY_DIM_OBJ                             0  ~21     ~20, 'logo'
         34        BOOL                                                 ~19     ~21
         35    > > JMPZ_EX                                              ~19     ~19, ->40
         36    >   FETCH_OBJ_IS                                         ~22     !1, 'info'
         37        ISSET_ISEMPTY_DIM_OBJ                             1  ~23     ~22, 'logo'
         38        BOOL_NOT                                             ~24     ~23
         39        BOOL                                                 ~19     ~24
         40    > > JMPZ                                                         ~19, ->44
   15    41    >   INIT_FCALL                                                   'var_dump'
         42        SEND_VAR                                                     !1
         43        DO_ICALL                                                     
   18    44    >   FETCH_OBJ_IS                                         ~26     !1, 'info'
         45        ISSET_ISEMPTY_DIM_OBJ                             0  ~27     ~26, 'logo'
         46      > JMPZ_EX                                              ~27     ~27, ->51
         47    >   FETCH_OBJ_IS                                         ~28     !1, 'info'
         48        ISSET_ISEMPTY_DIM_OBJ                             1  ~29     ~28, 'logo'
         49        BOOL_NOT                                             ~30     ~29
         50        BOOL                                                 ~27     ~30
         51    > > JMPZ                                                         ~27, ->55
   19    52    >   INIT_FCALL                                                   'var_dump'
         53        SEND_VAR                                                     !1
         54        DO_ICALL                                                     
   20    55    > > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
179.49 ms | 3117 KiB | 14 Q