3v4l.org

run code in 500+ PHP versions simultaneously
<?php class B { private $x = 'b'; } class C extends B { private $x = 'c'; } $obj = new C; $rc = new \ReflectionClass(C::class); $rb = $rc->getParentClass(); $rp_xC = $rc->getProperty('x'); $rp_xB = $rb->getProperty('x'); $rp_xC->setAccessible(true); $xc = $rp_xC->getValue($obj); $rp_xB->setAccessible(true); $xb = $rp_xB->getValue($obj); var_export([$xc, $xb]);
Output for 8.5.1 - 8.5.3
Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /in/LWWSf on line 20 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /in/LWWSf on line 23 array ( 0 => 'c', 1 => 'b', )
Output for 8.5.0
Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect in /in/LWWSf on line 20 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect in /in/LWWSf on line 23 array ( 0 => 'c', 1 => 'b', )
Output for 7.1.0 - 7.1.25, 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.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18
array ( 0 => 'c', 1 => 'b', )

preferences:
41.61 ms | 1440 KiB | 4 Q