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 = Base::$prop; $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.7
Deprecated: Calling ReflectionProperty::setValue() with a single argument is deprecated in /in/DTnmg 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.2 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.1 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 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.19
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:
211.17 ms | 401 KiB | 229 Q