Re: [RFC][Vote] Typed Properties
| From: | Fleshgrinder | Date: | Thu, 26 May 2016 16:57:21 +0000 |
| Subject: | Re: [RFC][Vote] Typed Properties | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-93576@lists.php.net to get a copy of this message | ||
On 5/26/2016 6:50 PM, Rowan Collins wrote:
> As I'm sure has already been pointed out (I haven't followed the whole
> thread) this defeats a large advantage of typed properties - I now can't
> read from the property without checking if it's null, so I can't do this:
>
> class O {
> public \DateTimeImmutable $d;
> }
> echo (new O)->d->format('Y-m-d H:i:s');
>
> There's no ? on the type def, so I ought to be able to trust the type. A
> TypeError makes more sense here, because it is a programming error for
> it to be in this state.
>
That is exactly what Stanislav raised too. I really have no idea how we
should prevent this from happening and honestly think we shouldn't. Your
construct will result in a fatal error (also known as
NullPointerException to some, *evil-laughter*) anyways preceded by an
E_NOTICE that tells you that your property is not defined.
I am of course open for ideas but emitting another kind of fatal error
does not really make things better imho.
--
Richard "Fleshgrinder" Fussenegger
Attachment: [application/pgp-signature] OpenPGP digital signature signature.asc
Attachment: [application/pgp-signature] OpenPGP digital signature signature.asc