3v4l.org

run code in 500+ PHP versions simultaneously
<?php class Foo { private mixed $data; public function getData(): mixed { return $this->data; } public function setData(mixed $data): void { $this->data = $data; } } function my_isset(object $object, string $property): bool { $r = new ReflectionProperty($object::class, $property); return $r->isInitialized($object) && $r->getValue($object) !== null; } $foo = new Foo(); var_dump(my_isset($foo, 'data')); $foo->setData(42); var_dump(my_isset($foo, 'data')); // This does not actually work because the property is not accessible var_dump(isset($foo->data));
Output for 8.1.32 - 8.1.34, 8.2.0 - 8.2.34, 8.3.0 - 8.3.35, 8.4.1 - 8.4.26, 8.5.0 - 8.5.11
bool(false) bool(true) bool(false)

preferences:
28.04 ms | 1152 KiB | 7 Q