3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tmp = json_decode(json_encode( (object) array('cars' => (object) array("1" => "one")) )); // expected $cars = array("1" => "one"); $cars = (array) $tmp->cars; var_dump(array_key_exists("1", $cars)); // expected true, returns false var_dump(array_key_exists(1, $cars)); // expected true, returns false $cars = get_object_vars($tmp->cars); var_dump($cars); $cars = array('1' => 'WTF'); var_dump(array_key_exists("1", $cars)); // expected true, returns true var_dump(array_key_exists(1, $cars)); // expected true, returns true
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/rHeqn
function name:  (null)
number of ops:  39
compiled vars:  !0 = $tmp, !1 = $cars
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'json_decode'
          1        INIT_FCALL                                               'json_encode'
    4     2        CAST                                          8  ~2      <array>
          3        INIT_ARRAY                                       ~3      ~2, 'cars'
          4        CAST                                          8  ~4      ~3
          5        SEND_VAL                                                 ~4
          6        DO_ICALL                                         $5      
          7        SEND_VAR                                                 $5
          8        DO_ICALL                                         $6      
    3     9        ASSIGN                                                   !0, $6
    8    10        FETCH_OBJ_R                                      ~8      !0, 'cars'
         11        CAST                                          7  ~9      ~8
         12        ASSIGN                                                   !1, ~9
   10    13        INIT_FCALL                                               'var_dump'
         14        ARRAY_KEY_EXISTS                                 ~11     '1', !1
         15        SEND_VAL                                                 ~11
         16        DO_ICALL                                                 
   11    17        INIT_FCALL                                               'var_dump'
         18        ARRAY_KEY_EXISTS                                 ~13     1, !1
         19        SEND_VAL                                                 ~13
         20        DO_ICALL                                                 
   13    21        INIT_FCALL                                               'get_object_vars'
         22        FETCH_OBJ_R                                      ~15     !0, 'cars'
         23        SEND_VAL                                                 ~15
         24        DO_ICALL                                         $16     
         25        ASSIGN                                                   !1, $16
   14    26        INIT_FCALL                                               'var_dump'
         27        SEND_VAR                                                 !1
         28        DO_ICALL                                                 
   16    29        ASSIGN                                                   !1, <array>
   18    30        INIT_FCALL                                               'var_dump'
         31        ARRAY_KEY_EXISTS                                 ~20     '1', !1
         32        SEND_VAL                                                 ~20
         33        DO_ICALL                                                 
   19    34        INIT_FCALL                                               'var_dump'
         35        ARRAY_KEY_EXISTS                                 ~22     1, !1
         36        SEND_VAL                                                 ~22
         37        DO_ICALL                                                 
         38      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
166.66 ms | 1396 KiB | 21 Q