3v4l.org

run code in 500+ PHP versions simultaneously
<?php class C { private $prop; public function &getProp() { return $this->prop; } public function setProp($value) { echo "Setting \$prop: $value\n"; $this->prop = $value; } } $c = new C(); $c->setProp(42); $prop = &$c->getProp(); $prop++; var_dump($c);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/VNhf7
function name:  (null)
number of ops:  14
compiled vars:  !0 = $c, !1 = $prop
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   16     0  E >   NEW                                                  $2      'C'
          1        DO_FCALL                                          0          
          2        ASSIGN                                                       !0, $2
   17     3        INIT_METHOD_CALL                                             !0, 'setProp'
          4        SEND_VAL_EX                                                  42
          5        DO_FCALL                                          0          
   18     6        INIT_METHOD_CALL                                             !0, 'getProp'
          7        DO_FCALL                                          0  $6      
          8        ASSIGN_REF                                                   !1, $6
   19     9        PRE_INC                                                      !1
   20    10        INIT_FCALL                                                   'var_dump'
         11        SEND_VAR                                                     !0
         12        DO_ICALL                                                     
         13      > RETURN                                                       1

Class C:
Function getprop:
Finding entry points
Branch analysis from position: 0
Return found
filename:       /in/VNhf7
function name:  getProp
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    7     0  E >   FETCH_OBJ_W                                          $0      'prop'
          1      > RETURN_BY_REF                                                $0
    8     2*     > RETURN_BY_REF                                                null

End of function getprop

Function setprop:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/VNhf7
function name:  setProp
number of ops:  8
compiled vars:  !0 = $value
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   10     0  E >   RECV                                                 !0      
   11     1        ROPE_INIT                                         3  ~2      'Setting+%24prop%3A+'
          2        ROPE_ADD                                          1  ~2      ~2, !0
          3        ROPE_END                                          2  ~1      ~2, '%0A'
          4        ECHO                                                         ~1
   12     5        ASSIGN_OBJ                                                   'prop'
          6        OP_DATA                                                      !0
   13     7      > RETURN                                                       null

End of function setprop

End of class C.

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
160.91 ms | 1594 KiB | 14 Q