3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
148.54 ms | 1400 KiB | 17 Q