<?php
class A {
public ?string $foo;
public string $foobar;
public ?string $bar = '';
}
$vars = get_object_vars(new A);
var_dump(assert(array_key_exists('bar', $vars)) ? 'bar exists in $vars' : 'bar does not exist in $vars');
var_dump(assert(array_key_exists('foobar', $vars)) ? 'foobar exists in $vars' : 'foobar does not exist in $vars');
var_dump(assert(array_key_exists('foo', $vars)) ? 'foo exists in $vars' : 'foo does not exist in $vars');
string(19) "bar exists in $vars"
Fatal error: Uncaught AssertionError: assert(array_key_exists('foobar', $vars)) in /in/eg6o0:12
Stack trace:
#0 /in/eg6o0(12): assert(false, 'assert(array_ke...')
#1 {main}
thrown in /in/eg6o0 on line 12
Process exited with code 255.
Output for 7.4.0 - 7.4.33
string(19) "bar exists in $vars"
Warning: assert(): assert(array_key_exists('foobar', $vars)) failed in /in/eg6o0 on line 12
string(30) "foobar does not exist in $vars"
Warning: assert(): assert(array_key_exists('foo', $vars)) failed in /in/eg6o0 on line 13
string(27) "foo does not exist in $vars"