3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Base { public static $prop = 'BASE'; } class Child extends Base { } $excepted = 'REFLECTED'; $property = new ReflectionProperty('Base', 'prop'); $property->setValue($excepted); $actual = Base::$prop; echo "Should be $excepted and is $actual\n"; $actual = Child::$prop; echo "Should be $excepted and is $actual\n"; Base::$prop = strrev(strrev(Base::$prop)); // force new zval $actual = Base::$prop; echo "Should be $excepted and is $actual\n"; $actual = Child::$prop; echo "Should be $excepted and is $actual\n";
Output for 8.3.0 - 8.3.6
Deprecated: Calling ReflectionProperty::setValue() with a single argument is deprecated in /in/Bj2Er on line 17 Should be REFLECTED and is REFLECTED Should be REFLECTED and is REFLECTED Should be REFLECTED and is REFLECTED Should be REFLECTED and is REFLECTED
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.1 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18
Should be REFLECTED and is REFLECTED Should be REFLECTED and is REFLECTED Should be REFLECTED and is REFLECTED Should be REFLECTED and is REFLECTED
Output for 7.0.0
Should be REFLECTED and is REFLECTED Should be REFLECTED and is BASE Should be REFLECTED and is REFLECTED Should be REFLECTED and is BASE

preferences:
312.78 ms | 401 KiB | 376 Q