3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a=array(); $a[-2]='a'; $a[-1]='b'; $a[0] ='c'; $a[ 1]='d'; $obj=(object)$a; echo $obj->{-2}.', '.$obj->{0}.', '.$obj->{1}."\n"; echo $obj->{'-2'}.', '.$obj->{'0'}.', '.$obj->{'1'}."\n"; $b =(array)$obj; echo $b[-2].', '.$b[0].', '.$b[1]."\n"; $obj=unserialize(serialize($obj)); echo $obj->{-2}.', '.$obj->{0}.', '.$obj->{1}."\n"; ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/EZeF8
function name:  (null)
number of ops:  57
compiled vars:  !0 = $a, !1 = $obj, !2 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
    3     1        ASSIGN_DIM                                               !0, -2
          2        OP_DATA                                                  'a'
    4     3        ASSIGN_DIM                                               !0, -1
          4        OP_DATA                                                  'b'
    5     5        ASSIGN_DIM                                               !0, 0
          6        OP_DATA                                                  'c'
    6     7        ASSIGN_DIM                                               !0, 1
          8        OP_DATA                                                  'd'
    8     9        CAST                                          8  ~8      !0
         10        ASSIGN                                                   !1, ~8
    9    11        FETCH_OBJ_R                                      ~10     !1, '-2'
         12        CONCAT                                           ~11     ~10, '%2C+'
         13        FETCH_OBJ_R                                      ~12     !1, '0'
         14        CONCAT                                           ~13     ~11, ~12
         15        CONCAT                                           ~14     ~13, '%2C+'
         16        FETCH_OBJ_R                                      ~15     !1, '1'
         17        CONCAT                                           ~16     ~14, ~15
         18        CONCAT                                           ~17     ~16, '%0A'
         19        ECHO                                                     ~17
   10    20        FETCH_OBJ_R                                      ~18     !1, '-2'
         21        CONCAT                                           ~19     ~18, '%2C+'
         22        FETCH_OBJ_R                                      ~20     !1, '0'
         23        CONCAT                                           ~21     ~19, ~20
         24        CONCAT                                           ~22     ~21, '%2C+'
         25        FETCH_OBJ_R                                      ~23     !1, '1'
         26        CONCAT                                           ~24     ~22, ~23
         27        CONCAT                                           ~25     ~24, '%0A'
         28        ECHO                                                     ~25
   11    29        CAST                                          7  ~26     !1
         30        ASSIGN                                                   !2, ~26
   12    31        FETCH_DIM_R                                      ~28     !2, -2
         32        CONCAT                                           ~29     ~28, '%2C+'
         33        FETCH_DIM_R                                      ~30     !2, 0
         34        CONCAT                                           ~31     ~29, ~30
         35        CONCAT                                           ~32     ~31, '%2C+'
         36        FETCH_DIM_R                                      ~33     !2, 1
         37        CONCAT                                           ~34     ~32, ~33
         38        CONCAT                                           ~35     ~34, '%0A'
         39        ECHO                                                     ~35
   14    40        INIT_FCALL                                               'unserialize'
         41        INIT_FCALL                                               'serialize'
         42        SEND_VAR                                                 !1
         43        DO_ICALL                                         $36     
         44        SEND_VAR                                                 $36
         45        DO_ICALL                                         $37     
         46        ASSIGN                                                   !1, $37
   15    47        FETCH_OBJ_R                                      ~39     !1, '-2'
         48        CONCAT                                           ~40     ~39, '%2C+'
         49        FETCH_OBJ_R                                      ~41     !1, '0'
         50        CONCAT                                           ~42     ~40, ~41
         51        CONCAT                                           ~43     ~42, '%2C+'
         52        FETCH_OBJ_R                                      ~44     !1, '1'
         53        CONCAT                                           ~45     ~43, ~44
         54        CONCAT                                           ~46     ~45, '%0A'
         55        ECHO                                                     ~46
   17    56      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
162.72 ms | 1400 KiB | 17 Q