1--TEST--
2Test isset and empty on nullsafe property
3--FILE--
4<?php
5
6class Foo {
7    public $bar;
8}
9
10class Bar {
11    public $baz;
12}
13$bar = new Bar();
14$bar->baz = 'baz';
15
16var_dump(isset($foo?->bar));
17var_dump(empty($foo?->bar));
18
19var_dump(isset($foo?->bar->baz));
20var_dump(empty($foo?->bar->baz));
21echo "\n";
22
23$foo = null;
24var_dump(isset($foo?->bar));
25var_dump(empty($foo?->bar));
26
27var_dump(isset($foo?->bar->baz));
28var_dump(empty($foo?->bar->baz));
29echo "\n";
30
31$foo = new Foo();
32var_dump(isset($foo?->bar->baz));
33var_dump(empty($foo?->bar->baz));
34
35$foo->bar = $bar;
36var_dump(isset($foo?->bar->baz));
37var_dump(empty($foo?->bar->baz));
38
39?>
40--EXPECT--
41bool(false)
42bool(true)
43bool(false)
44bool(true)
45
46bool(false)
47bool(true)
48bool(false)
49bool(true)
50
51bool(false)
52bool(true)
53bool(true)
54bool(false)
55