1--TEST-- 2Nullable typed property 3--FILE-- 4<?php 5class Foo { 6 public ?int $foo = null; 7} 8 9$x = new Foo(); 10var_dump($x); 11var_dump($x->foo); 12 13$x->foo = 5; 14var_dump($x->foo); 15 16$x->foo = null; 17var_dump($x->foo); 18 19unset($x->foo); 20try { 21 var_dump($x->foo); 22} catch (Throwable $e) { 23 echo $e->getMessage()."\n"; 24} 25try { 26 $x->foo = "ops"; 27} catch (Throwable $e) { 28 echo $e->getMessage()."\n"; 29} 30?> 31--EXPECT-- 32object(Foo)#1 (1) { 33 ["foo"]=> 34 NULL 35} 36NULL 37int(5) 38NULL 39Typed property Foo::$foo must not be accessed before initialization 40Cannot assign string to property Foo::$foo of type ?int 41