3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public $foo; } class Bar extends Foo { public $bar; } $barClassReflection = new ReflectionClass(Bar::class); $properties = $barClassReflection->getProperties(); var_dump($properties); foreach ($properties as $property) { var_dump($property->getName()); var_dump($property->class); var_dump($property->getDeclaringClass()->getName()); var_dump($property->class === $property->getDeclaringClass()->getName()); }
Output for 7.0.33, 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.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
array(2) { [0]=> object(ReflectionProperty)#2 (2) { ["name"]=> string(3) "bar" ["class"]=> string(3) "Bar" } [1]=> object(ReflectionProperty)#3 (2) { ["name"]=> string(3) "foo" ["class"]=> string(3) "Foo" } } string(3) "bar" string(3) "Bar" string(3) "Bar" bool(true) string(3) "foo" string(3) "Foo" string(3) "Foo" bool(true)
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 array(2) { [0]=> object(ReflectionProperty)#2 (2) { ["name"]=> string(3) "bar" ["class"]=> string(3) "Bar" } [1]=> object(ReflectionProperty)#3 (2) { ["name"]=> string(3) "foo" ["class"]=> string(3) "Foo" } } string(3) "bar" string(3) "Bar" string(3) "Bar" bool(true) string(3) "foo" string(3) "Foo" string(3) "Foo" bool(true)
Output for 5.6.38
array(2) { [0]=> &object(ReflectionProperty)#2 (2) { ["name"]=> string(3) "bar" ["class"]=> string(3) "Bar" } [1]=> &object(ReflectionProperty)#3 (2) { ["name"]=> string(3) "foo" ["class"]=> string(3) "Foo" } } string(3) "bar" string(3) "Bar" string(3) "Bar" bool(true) string(3) "foo" string(3) "Foo" string(3) "Foo" bool(true)

preferences:
168.29 ms | 402 KiB | 154 Q