3v4l.org

run code in 300+ PHP versions simultaneously
<?php $obj = new stdClass(); $obj->bar = "123"; $data = ["foo" => "bar"]; $key = "foo"; echo $obj->{ $data[$key] },"\n"; echo $obj->{ ${'data'}[$key] },"\n"; echo "{$obj->{ $data[$key] }}\n"; echo $obj->{ $data[$key]},"\n"; echo "{$obj->{ ${'data'}[$key] }}\n"; echo $obj->{ ${'data'}[$key] },"\n"; echo "{${'obj'}->{ ${'data'}[$key] }}\n"; echo ${'obj'}->{ ${'data'}[$key] },"\n"; echo ${'obj'}->{${'data'}[$key]}=456; echo ${'obj'}->${'data'}[$key]=456;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kfhmH
function name:  (null)
number of ops:  51
compiled vars:  !0 = $obj, !1 = $data, !2 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   NEW                                              $3      'stdClass'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $3
    4     3        ASSIGN_OBJ                                               !0, 'bar'
          4        OP_DATA                                                  '123'
    6     5        ASSIGN                                                   !1, <array>
    7     6        ASSIGN                                                   !2, 'foo'
    9     7        FETCH_DIM_R                                      ~9      !1, !2
          8        FETCH_OBJ_R                                      ~10     !0, ~9
          9        ECHO                                                     ~10
         10        ECHO                                                     '%0A'
   10    11        FETCH_DIM_R                                      ~11     !1, !2
         12        FETCH_OBJ_R                                      ~12     !0, ~11
         13        ECHO                                                     ~12
         14        ECHO                                                     '%0A'
   12    15        FETCH_DIM_R                                      ~13     !1, !2
         16        FETCH_OBJ_R                                      ~14     !0, ~13
         17        NOP                                                      
         18        FAST_CONCAT                                      ~15     ~14, '%0A'
         19        ECHO                                                     ~15
   13    20        FETCH_DIM_R                                      ~16     !1, !2
         21        FETCH_OBJ_R                                      ~17     !0, ~16
         22        ECHO                                                     ~17
         23        ECHO                                                     '%0A'
   15    24        FETCH_DIM_R                                      ~18     !1, !2
         25        FETCH_OBJ_R                                      ~19     !0, ~18
         26        NOP                                                      
         27        FAST_CONCAT                                      ~20     ~19, '%0A'
         28        ECHO                                                     ~20
   16    29        FETCH_DIM_R                                      ~21     !1, !2
         30        FETCH_OBJ_R                                      ~22     !0, ~21
         31        ECHO                                                     ~22
         32        ECHO                                                     '%0A'
   18    33        FETCH_DIM_R                                      ~23     !1, !2
         34        FETCH_OBJ_R                                      ~24     !0, ~23
         35        NOP                                                      
         36        FAST_CONCAT                                      ~25     ~24, '%0A'
         37        ECHO                                                     ~25
   19    38        FETCH_DIM_R                                      ~26     !1, !2
         39        FETCH_OBJ_R                                      ~27     !0, ~26
         40        ECHO                                                     ~27
         41        ECHO                                                     '%0A'
   21    42        FETCH_DIM_R                                      ~28     !1, !2
         43        ASSIGN_OBJ                                       ~29     !0, ~28
         44        OP_DATA                                                  456
         45        ECHO                                                     ~29
   22    46        FETCH_OBJ_W                                      $30     !0, !1
         47        ASSIGN_DIM                                       ~31     $30, !2
         48        OP_DATA                                                  456
         49        ECHO                                                     ~31
         50      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
173.84 ms | 1399 KiB | 13 Q