3v4l.org

run code in 300+ PHP versions simultaneously
<?php (function () { ${42} = 42; ${true} = true; $original = get_defined_vars(); $combined = array_combine(array_keys($original), array_values($original)); echo 'original: '; var_dump($original); echo 'combined: '; var_dump($combined); echo "\n"; echo 'original keys: '; var_dump(array_keys($original)); echo 'combined keys: '; var_dump(array_keys($combined)); echo "\n"; echo 'key-intersection: '; var_dump(array_intersect_key($original, $combined)); echo "\n"; foreach ($original as $varname => $_) { echo 'varname: '; var_dump($varname); echo 'in_array(keys)?: '; var_dump(in_array($varname, array_keys($original), true)); echo 'array_key_exists?: '; var_dump(array_key_exists($varname, $original)); echo 'isset[]?: '; var_dump(isset($original[$varname])); echo 'access: '; var_dump($original[$varname]); echo "\n"; } })();
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/a67Ka
function name:  (null)
number of ops:  4
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   DECLARE_LAMBDA_FUNCTION                          ~0      [0]
   26     1        INIT_DYNAMIC_CALL                                        ~0
          2        DO_FCALL                                      0          
          3      > RETURN                                                   1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 51, Position 2 = 86
Branch analysis from position: 51
2 jumps found. (Code = 78) Position 1 = 52, Position 2 = 86
Branch analysis from position: 52
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
Branch analysis from position: 86
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 86
filename:       /in/a67Ka
function name:  {closure}
number of ops:  88
compiled vars:  !0 = $42, !1 = $original, !2 = $combined, !3 = $_, !4 = $varname
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                   !0, 42
    5     1        FETCH_W                      local               $6      '1'
          2        ASSIGN                                                   $6, <true>
    7     3        INIT_FCALL                                               'get_defined_vars'
          4        DO_ICALL                                         $8      
          5        ASSIGN                                                   !1, $8
    8     6        INIT_FCALL                                               'array_combine'
          7        INIT_FCALL                                               'array_keys'
          8        SEND_VAR                                                 !1
          9        DO_ICALL                                         $10     
         10        SEND_VAR                                                 $10
         11        INIT_FCALL                                               'array_values'
         12        SEND_VAR                                                 !1
         13        DO_ICALL                                         $11     
         14        SEND_VAR                                                 $11
         15        DO_ICALL                                         $12     
         16        ASSIGN                                                   !2, $12
   10    17        ECHO                                                     'original%3A+'
         18        INIT_FCALL                                               'var_dump'
         19        SEND_VAR                                                 !1
         20        DO_ICALL                                                 
   11    21        ECHO                                                     'combined%3A+'
         22        INIT_FCALL                                               'var_dump'
         23        SEND_VAR                                                 !2
         24        DO_ICALL                                                 
   12    25        ECHO                                                     '%0A'
   13    26        ECHO                                                     'original+keys%3A+'
         27        INIT_FCALL                                               'var_dump'
         28        INIT_FCALL                                               'array_keys'
         29        SEND_VAR                                                 !1
         30        DO_ICALL                                         $16     
         31        SEND_VAR                                                 $16
         32        DO_ICALL                                                 
   14    33        ECHO                                                     'combined+keys%3A+'
         34        INIT_FCALL                                               'var_dump'
         35        INIT_FCALL                                               'array_keys'
         36        SEND_VAR                                                 !2
         37        DO_ICALL                                         $18     
         38        SEND_VAR                                                 $18
         39        DO_ICALL                                                 
   15    40        ECHO                                                     '%0A'
   16    41        ECHO                                                     'key-intersection%3A+'
         42        INIT_FCALL                                               'var_dump'
         43        INIT_FCALL                                               'array_intersect_key'
         44        SEND_VAR                                                 !1
         45        SEND_VAR                                                 !2
         46        DO_ICALL                                         $20     
         47        SEND_VAR                                                 $20
         48        DO_ICALL                                                 
   17    49        ECHO                                                     '%0A'
   18    50      > FE_RESET_R                                       $22     !1, ->86
         51    > > FE_FETCH_R                                       ~23     $22, !3, ->86
         52    >   ASSIGN                                                   !4, ~23
   19    53        ECHO                                                     'varname%3A+'
         54        INIT_FCALL                                               'var_dump'
         55        SEND_VAR                                                 !4
         56        DO_ICALL                                                 
   20    57        ECHO                                                     'in_array%28keys%29%3F%3A+++'
         58        INIT_FCALL                                               'var_dump'
         59        INIT_FCALL                                               'in_array'
         60        SEND_VAR                                                 !4
         61        INIT_FCALL                                               'array_keys'
         62        SEND_VAR                                                 !1
         63        DO_ICALL                                         $26     
         64        SEND_VAR                                                 $26
         65        SEND_VAL                                                 <true>
         66        DO_ICALL                                         $27     
         67        SEND_VAR                                                 $27
         68        DO_ICALL                                                 
   21    69        ECHO                                                     'array_key_exists%3F%3A+'
         70        INIT_FCALL                                               'var_dump'
         71        ARRAY_KEY_EXISTS                                 ~29     !4, !1
         72        SEND_VAL                                                 ~29
         73        DO_ICALL                                                 
   22    74        ECHO                                                     'isset%5B%5D%3F%3A++++++++++'
         75        INIT_FCALL                                               'var_dump'
         76        ISSET_ISEMPTY_DIM_OBJ                         0  ~31     !1, !4
         77        SEND_VAL                                                 ~31
         78        DO_ICALL                                                 
   23    79        ECHO                                                     'access%3A+'
         80        INIT_FCALL                                               'var_dump'
         81        FETCH_DIM_R                                      ~33     !1, !4
         82        SEND_VAL                                                 ~33
         83        DO_ICALL                                                 
   24    84        ECHO                                                     '%0A'
   18    85      > JMP                                                      ->51
         86    >   FE_FREE                                                  $22
   26    87      > RETURN                                                   null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
137.6 ms | 1015 KiB | 20 Q