3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Base { public static $prop; } class Child extends Base { } // both values are A $expected = 'A'; Base::$prop = $expected; echo "Should be $expected and is " . Base::$prop . "\n"; echo "Should be $expected and is " . Child::$prop . "\n"; echo "\n"; // VALUES DIFFER $expected = 'B'; $property = new ReflectionProperty('Base', 'prop'); $property->setValue($expected); echo "Should be $expected and is " . Base::$prop . "\n"; echo "Should be $expected and is " . Child::$prop . "\n"; echo "\n"; // VALUES STILL DIFFER $expected = 'C'; Base::$prop = $expected; echo "Should be $expected and is " . Base::$prop . "\n"; echo "Should be $expected and is " . Child::$prop . "\n"; echo "\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T43Sh
function name:  (null)
number of ops:  61
compiled vars:  !0 = $expected, !1 = $property
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   ASSIGN                                                   !0, 'A'
   14     1        ASSIGN_STATIC_PROP                                       'prop', 'Base'
          2        OP_DATA                                                  !0
   16     3        ROPE_INIT                                     3  ~5      'Should+be+'
          4        ROPE_ADD                                      1  ~5      ~5, !0
          5        ROPE_END                                      2  ~4      ~5, '+and+is+'
          6        FETCH_STATIC_PROP_R          unknown             ~7      'prop'
          7        CONCAT                                           ~8      ~4, ~7
          8        CONCAT                                           ~9      ~8, '%0A'
          9        ECHO                                                     ~9
   17    10        ROPE_INIT                                     3  ~11     'Should+be+'
         11        ROPE_ADD                                      1  ~11     ~11, !0
         12        ROPE_END                                      2  ~10     ~11, '+and+is+'
         13        FETCH_STATIC_PROP_R          unknown             ~13     'prop'
         14        CONCAT                                           ~14     ~10, ~13
         15        CONCAT                                           ~15     ~14, '%0A'
         16        ECHO                                                     ~15
   18    17        ECHO                                                     '%0A'
   22    18        ASSIGN                                                   !0, 'B'
   23    19        NEW                                              $17     'ReflectionProperty'
         20        SEND_VAL_EX                                              'Base'
         21        SEND_VAL_EX                                              'prop'
         22        DO_FCALL                                      0          
         23        ASSIGN                                                   !1, $17
   24    24        INIT_METHOD_CALL                                         !1, 'setValue'
         25        SEND_VAR_EX                                              !0
         26        DO_FCALL                                      0          
   26    27        ROPE_INIT                                     3  ~22     'Should+be+'
         28        ROPE_ADD                                      1  ~22     ~22, !0
         29        ROPE_END                                      2  ~21     ~22, '+and+is+'
         30        FETCH_STATIC_PROP_R          unknown             ~24     'prop'
         31        CONCAT                                           ~25     ~21, ~24
         32        CONCAT                                           ~26     ~25, '%0A'
         33        ECHO                                                     ~26
   27    34        ROPE_INIT                                     3  ~28     'Should+be+'
         35        ROPE_ADD                                      1  ~28     ~28, !0
         36        ROPE_END                                      2  ~27     ~28, '+and+is+'
         37        FETCH_STATIC_PROP_R          unknown             ~30     'prop'
         38        CONCAT                                           ~31     ~27, ~30
         39        CONCAT                                           ~32     ~31, '%0A'
         40        ECHO                                                     ~32
   28    41        ECHO                                                     '%0A'
   32    42        ASSIGN                                                   !0, 'C'
   33    43        ASSIGN_STATIC_PROP                                       'prop', 'Base'
         44        OP_DATA                                                  !0
   35    45        ROPE_INIT                                     3  ~36     'Should+be+'
         46        ROPE_ADD                                      1  ~36     ~36, !0
         47        ROPE_END                                      2  ~35     ~36, '+and+is+'
         48        FETCH_STATIC_PROP_R          unknown             ~38     'prop'
         49        CONCAT                                           ~39     ~35, ~38
         50        CONCAT                                           ~40     ~39, '%0A'
         51        ECHO                                                     ~40
   36    52        ROPE_INIT                                     3  ~42     'Should+be+'
         53        ROPE_ADD                                      1  ~42     ~42, !0
         54        ROPE_END                                      2  ~41     ~42, '+and+is+'
         55        FETCH_STATIC_PROP_R          unknown             ~44     'prop'
         56        CONCAT                                           ~45     ~41, ~44
         57        CONCAT                                           ~46     ~45, '%0A'
         58        ECHO                                                     ~46
   37    59        ECHO                                                     '%0A'
         60      > RETURN                                                   1

Class Base: [no user functions]
Class Child: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
166.26 ms | 1405 KiB | 13 Q