I'm not seeing a problem here: class A { public int $x; public ?int $y = null; public int $z = 42; public ?int $u; public ?datetime $v; public datetime $w; }
$a = new A; var_dump($a->x); // 0 + notice var_dump($a->y); // null var_dump($a->z); // 42 var_dump(isset($a->z)); // true unset($a->z); var_dump(isset($a->z)); // false var_dump($a->z); // 0 + notice var_dump($a->u); // null + notice var_dump($a->v); // null + notice var_dump($a->w); // Fatal error, uninitialized... var_dump(isset($a->x)); // false var_dump(isset($a->y)); // false var_dump(isset($a->u)); // false var_dump(isset($a->v)); // false var_dump(isset($a->w)); // false Regards Thomas >> public ?int $y = null; >> public int $z = 42; >> public ?int $u; >> public ?datetime $v; >> public datetime $w; >> } >> >> $a = new A; >> var_dump($a->x); // 0 + notice >> var_dump($a->y); // null >> var_dump($a->z); // 42 >> unset($a->z); >> var_dump($a->z); // 0 + notice >> var_dump($a->u); // null + notice >> var_dump($a->v); // null + notice >> var_dump($a->w); // Fatal error, uninitialized... Fleshgrinder wrote on 25.05.2016 23:38: > On 5/25/2016 11:35 PM, Thomas Bley wrote: >> Following "Type safety is the goal of this RFC, not validating objects.", it >> would be better to do implicit casting for uninitialized properties (whenever >> implicit casting is possible) or use null for nullable types: >> >> class A { >> public int $x; >> public ?int $y = null; >> public int $z = 42; >> public ?int $u; >> public ?datetime $v; >> public datetime $w; >> } >> >> $a = new A; >> var_dump($a->x); // 0 + notice >> var_dump($a->y); // null >> var_dump($a->z); // 42 >> unset($a->z); >> var_dump($a->z); // 0 + notice >> var_dump($a->u); // null + notice >> var_dump($a->v); // null + notice >> var_dump($a->w); // Fatal error, uninitialized... >> > > This was proposed many times but it renders checks whether something was > initialized or not completely useless and is not really a solution to > the problem at hand. > > -- > Richard "Fleshgrinder" Fussenegger > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php