3v4l.org

run code in 300+ 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 = 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/qVbYK
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 >   NEW                                              $2      'stdClass'
          1        DO_FCALL                                      0          
          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                                         $6      
          9      > JMPZ_EX                                          ~7      $6, ->13
         10    >   FETCH_OBJ_IS                                     ~8      !0, 'info'
         11        ISSET_ISEMPTY_DIM_OBJ                         0  ~9      ~8, 'logo'
         12        BOOL                                             ~7      ~9
         13    > > JMPZ_EX                                          ~7      ~7, ->18
         14    >   FETCH_OBJ_IS                                     ~10     !0, 'info'
         15        ISSET_ISEMPTY_DIM_OBJ                         1  ~11     ~10, 'logo'
         16        BOOL_NOT                                         ~12     ~11
         17        BOOL                                             ~7      ~12
         18    > > JMPZ                                                     ~7, ->22
    6    19    >   INIT_FCALL                                               'var_dump'
         20        SEND_VAR                                                 !0
         21        DO_ICALL                                                 
    9    22    >   FETCH_OBJ_IS                                     ~14     !0, 'info'
         23        ISSET_ISEMPTY_DIM_OBJ                         0  ~15     ~14, 'logo'
         24      > JMPZ_EX                                          ~15     ~15, ->29
         25    >   FETCH_OBJ_IS                                     ~16     !0, 'info'
         26        ISSET_ISEMPTY_DIM_OBJ                         1  ~17     ~16, 'logo'
         27        BOOL_NOT                                         ~18     ~17
         28        BOOL                                             ~15     ~18
         29    > > JMPZ                                                     ~15, ->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                                         $20     
         37      > JMPZ_EX                                          ~21     $20, ->41
         38    >   FETCH_OBJ_IS                                     ~22     !1, 'info'
         39        ISSET_ISEMPTY_DIM_OBJ                         0  ~23     ~22, 'logo'
         40        BOOL                                             ~21     ~23
         41    > > JMPZ_EX                                          ~21     ~21, ->46
         42    >   FETCH_OBJ_IS                                     ~24     !1, 'info'
         43        ISSET_ISEMPTY_DIM_OBJ                         1  ~25     ~24, 'logo'
         44        BOOL_NOT                                         ~26     ~25
         45        BOOL                                             ~21     ~26
         46    > > JMPZ                                                     ~21, ->50
   15    47    >   INIT_FCALL                                               'var_dump'
         48        SEND_VAR                                                 !1
         49        DO_ICALL                                                 
   18    50    >   FETCH_OBJ_IS                                     ~28     !1, 'info'
         51        ISSET_ISEMPTY_DIM_OBJ                         0  ~29     ~28, 'logo'
         52      > JMPZ_EX                                          ~29     ~29, ->57
         53    >   FETCH_OBJ_IS                                     ~30     !1, 'info'
         54        ISSET_ISEMPTY_DIM_OBJ                         1  ~31     ~30, 'logo'
         55        BOOL_NOT                                         ~32     ~31
         56        BOOL                                             ~29     ~32
         57    > > JMPZ                                                     ~29, ->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:
151.4 ms | 1016 KiB | 15 Q