3v4l.org

run code in 300+ PHP versions simultaneously
<?php class U extends ArrayObject { public function __construct($input, $flags = 0) { parent::__construct($input, $flags); } //public $id; //public $name; } $a = ['id' => 123, 'name' => 'Me']; $o = (object)$a; var_dump($o); $ao0 = new ArrayObject($a); $ao1 = new ArrayObject($a, ArrayObject::STD_PROP_LIST); $ao2 = new ArrayObject($a, ArrayObject::ARRAY_AS_PROPS); $ao3 = new ArrayObject($a, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS); $ao3x = new ArrayObject($a, ArrayObject::STD_PROP_LIST & ArrayObject::ARRAY_AS_PROPS); $u0 = new U($a); $u1 = new U($a, ArrayObject::STD_PROP_LIST); $u2 = new U($a, ArrayObject::ARRAY_AS_PROPS); $u3 = new U($a, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS); $u3x = new U($a, ArrayObject::STD_PROP_LIST & ArrayObject::ARRAY_AS_PROPS); var_dump($ao0); var_dump($u0); echo '-----'; var_dump($ao0->name); var_dump($ao1->name); var_dump($ao2->name); var_dump($ao3->name); var_dump($ao3x->name); echo '---'; var_dump($ao0['name']); var_dump($ao1['name']); var_dump($ao2['name']); var_dump($ao3['name']); var_dump($ao3x['name']); echo '-----'; var_dump($u0->name); var_dump($u1->name); var_dump($u2->name); var_dump($u3->name); var_dump($u3x->name); echo '---'; var_dump($u0['name']); var_dump($u1['name']); var_dump($u2['name']); var_dump($u3['name']); var_dump($u3x['name']); echo "-----\n"; var_dump(is_array($o)); var_dump(is_array($ao2)); var_dump(is_array($u2)); echo "-----\n"; var_dump($o instanceof Iterator); var_dump($ao2 instanceof Iterator); var_dump($u2 instanceof Iterator); echo "-----\n"; var_dump(is_object($o)); var_dump(is_object($ao2)); var_dump(is_object($u2));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fdKLB
function name:  (null)
number of ops:  184
compiled vars:  !0 = $a, !1 = $o, !2 = $ao0, !3 = $ao1, !4 = $ao2, !5 = $ao3, !6 = $ao3x, !7 = $u0, !8 = $u1, !9 = $u2, !10 = $u3, !11 = $u3x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   10     0  E >   ASSIGN                                                   !0, <array>
   11     1        CAST                                          8  ~13     !0
          2        ASSIGN                                                   !1, ~13
   12     3        INIT_FCALL                                               'var_dump'
          4        SEND_VAR                                                 !1
          5        DO_ICALL                                                 
   14     6        NEW                                              $16     'ArrayObject'
          7        SEND_VAR_EX                                              !0
          8        DO_FCALL                                      0          
          9        ASSIGN                                                   !2, $16
   15    10        NEW                                              $19     'ArrayObject'
         11        SEND_VAR_EX                                              !0
         12        SEND_VAL_EX                                              1
         13        DO_FCALL                                      0          
         14        ASSIGN                                                   !3, $19
   16    15        NEW                                              $22     'ArrayObject'
         16        SEND_VAR_EX                                              !0
         17        SEND_VAL_EX                                              2
         18        DO_FCALL                                      0          
         19        ASSIGN                                                   !4, $22
   17    20        NEW                                              $25     'ArrayObject'
         21        SEND_VAR_EX                                              !0
         22        SEND_VAL_EX                                              3
         23        DO_FCALL                                      0          
         24        ASSIGN                                                   !5, $25
   18    25        NEW                                              $28     'ArrayObject'
         26        SEND_VAR_EX                                              !0
         27        SEND_VAL_EX                                              0
         28        DO_FCALL                                      0          
         29        ASSIGN                                                   !6, $28
   20    30        NEW                                              $31     'U'
         31        SEND_VAR_EX                                              !0
         32        DO_FCALL                                      0          
         33        ASSIGN                                                   !7, $31
   21    34        NEW                                              $34     'U'
         35        SEND_VAR_EX                                              !0
         36        SEND_VAL_EX                                              1
         37        DO_FCALL                                      0          
         38        ASSIGN                                                   !8, $34
   22    39        NEW                                              $37     'U'
         40        SEND_VAR_EX                                              !0
         41        SEND_VAL_EX                                              2
         42        DO_FCALL                                      0          
         43        ASSIGN                                                   !9, $37
   23    44        NEW                                              $40     'U'
         45        SEND_VAR_EX                                              !0
         46        SEND_VAL_EX                                              3
         47        DO_FCALL                                      0          
         48        ASSIGN                                                   !10, $40
   24    49        NEW                                              $43     'U'
         50        SEND_VAR_EX                                              !0
         51        SEND_VAL_EX                                              0
         52        DO_FCALL                                      0          
         53        ASSIGN                                                   !11, $43
   26    54        INIT_FCALL                                               'var_dump'
         55        SEND_VAR                                                 !2
         56        DO_ICALL                                                 
   28    57        INIT_FCALL                                               'var_dump'
         58        SEND_VAR                                                 !7
         59        DO_ICALL                                                 
   30    60        ECHO                                                     '-----'
   32    61        INIT_FCALL                                               'var_dump'
         62        FETCH_OBJ_R                                      ~48     !2, 'name'
         63        SEND_VAL                                                 ~48
         64        DO_ICALL                                                 
   33    65        INIT_FCALL                                               'var_dump'
         66        FETCH_OBJ_R                                      ~50     !3, 'name'
         67        SEND_VAL                                                 ~50
         68        DO_ICALL                                                 
   34    69        INIT_FCALL                                               'var_dump'
         70        FETCH_OBJ_R                                      ~52     !4, 'name'
         71        SEND_VAL                                                 ~52
         72        DO_ICALL                                                 
   35    73        INIT_FCALL                                               'var_dump'
         74        FETCH_OBJ_R                                      ~54     !5, 'name'
         75        SEND_VAL                                                 ~54
         76        DO_ICALL                                                 
   36    77        INIT_FCALL                                               'var_dump'
         78        FETCH_OBJ_R                                      ~56     !6, 'name'
         79        SEND_VAL                                                 ~56
         80        DO_ICALL                                                 
   38    81        ECHO                                                     '---'
   40    82        INIT_FCALL                                               'var_dump'
         83        FETCH_DIM_R                                      ~58     !2, 'name'
         84        SEND_VAL                                                 ~58
         85        DO_ICALL                                                 
   41    86        INIT_FCALL                                               'var_dump'
         87        FETCH_DIM_R                                      ~60     !3, 'name'
         88        SEND_VAL                                                 ~60
         89        DO_ICALL                                                 
   42    90        INIT_FCALL                                               'var_dump'
         91        FETCH_DIM_R                                      ~62     !4, 'name'
         92        SEND_VAL                                                 ~62
         93        DO_ICALL                                                 
   43    94        INIT_FCALL                                               'var_dump'
         95        FETCH_DIM_R                                      ~64     !5, 'name'
         96        SEND_VAL                                                 ~64
         97        DO_ICALL                                                 
   44    98        INIT_FCALL                                               'var_dump'
         99        FETCH_DIM_R                                      ~66     !6, 'name'
        100        SEND_VAL                                                 ~66
        101        DO_ICALL                                                 
   47   102        ECHO                                                     '-----'
   49   103        INIT_FCALL                                               'var_dump'
        104        FETCH_OBJ_R                                      ~68     !7, 'name'
        105        SEND_VAL                                                 ~68
        106        DO_ICALL                                                 
   50   107        INIT_FCALL                                               'var_dump'
        108        FETCH_OBJ_R                                      ~70     !8, 'name'
        109        SEND_VAL                                                 ~70
        110        DO_ICALL                                                 
   51   111        INIT_FCALL                                               'var_dump'
        112        FETCH_OBJ_R                                      ~72     !9, 'name'
        113        SEND_VAL                                                 ~72
        114        DO_ICALL                                                 
   52   115        INIT_FCALL                                               'var_dump'
        116        FETCH_OBJ_R                                      ~74     !10, 'name'
        117        SEND_VAL                                                 ~74
        118        DO_ICALL                                                 
   53   119        INIT_FCALL                                               'var_dump'
        120        FETCH_OBJ_R                                      ~76     !11, 'name'
        121        SEND_VAL                                                 ~76
        122        DO_ICALL                                                 
   55   123        ECHO                                                     '---'
   57   124        INIT_FCALL                                               'var_dump'
        125        FETCH_DIM_R                                      ~78     !7, 'name'
        126        SEND_VAL                                                 ~78
        127        DO_ICALL                                                 
   58   128        INIT_FCALL                                               'var_dump'
        129        FETCH_DIM_R                                      ~80     !8, 'name'
        130        SEND_VAL                                                 ~80
        131        DO_ICALL                                                 
   59   132        INIT_FCALL                                               'var_dump'
        133        FETCH_DIM_R                                      ~82     !9, 'name'
        134        SEND_VAL                                                 ~82
        135        DO_ICALL                                                 
   60   136        INIT_FCALL                                               'var_dump'
        137        FETCH_DIM_R                                      ~84     !10, 'name'
        138        SEND_VAL                                                 ~84
        139        DO_ICALL                                                 
   61   140        INIT_FCALL                                               'var_dump'
        141        FETCH_DIM_R                                      ~86     !11, 'name'
        142        SEND_VAL                                                 ~86
        143        DO_ICALL                                                 
   64   144        ECHO                                                     '-----%0A'
   66   145        INIT_FCALL                                               'var_dump'
        146        TYPE_CHECK                                  128  ~88     !1
        147        SEND_VAL                                                 ~88
        148        DO_ICALL                                                 
   67   149        INIT_FCALL                                               'var_dump'
        150        TYPE_CHECK                                  128  ~90     !4
        151        SEND_VAL                                                 ~90
        152        DO_ICALL                                                 
   68   153        INIT_FCALL                                               'var_dump'
        154        TYPE_CHECK                                  128  ~92     !9
        155        SEND_VAL                                                 ~92
        156        DO_ICALL                                                 
   70   157        ECHO                                                     '-----%0A'
   72   158        INIT_FCALL                                               'var_dump'
        159        INSTANCEOF                                       ~94     !1, 'Iterator'
        160        SEND_VAL                                                 ~94
        161        DO_ICALL                                                 
   73   162        INIT_FCALL                                               'var_dump'
        163        INSTANCEOF                                       ~96     !4, 'Iterator'
        164        SEND_VAL                                                 ~96
        165        DO_ICALL                                                 
   74   166        INIT_FCALL                                               'var_dump'
        167        INSTANCEOF                                       ~98     !9, 'Iterator'
        168        SEND_VAL                                                 ~98
        169        DO_ICALL                                                 
   77   170        ECHO                                                     '-----%0A'
   79   171        INIT_FCALL                                               'var_dump'
        172        TYPE_CHECK                                  256  ~100    !1
        173        SEND_VAL                                                 ~100
        174        DO_ICALL                                                 
   80   175        INIT_FCALL                                               'var_dump'
        176        TYPE_CHECK                                  256  ~102    !4
        177        SEND_VAL                                                 ~102
        178        DO_ICALL                                                 
   81   179        INIT_FCALL                                               'var_dump'
        180        TYPE_CHECK                                  256  ~104    !9
        181        SEND_VAL                                                 ~104
        182        DO_ICALL                                                 
        183      > RETURN                                                   1

Class U:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fdKLB
function name:  __construct
number of ops:  7
compiled vars:  !0 = $input, !1 = $flags
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      0
    4     2        INIT_STATIC_METHOD_CALL                                  
          3        SEND_VAR_EX                                              !0
          4        SEND_VAR_EX                                              !1
          5        DO_FCALL                                      0          
    5     6      > RETURN                                                   null

End of function __construct

End of class U.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
181.83 ms | 1412 KiB | 15 Q