Re: Non-nullable properties
| From: | Dan Ackroyd | Date: | Mon, 16 Jul 2018 12:00:57 +0000 |
| Subject: | Re: Non-nullable properties | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-102848@lists.php.net to get a copy of this message | ||
On 16 July 2018 at 09:43, Rowan Collins <rowan.collins@gmail.com> wrote:
> There's no contradiction here; throwing an error when a
> property is *read* is not the same as enforcing that it always has a valid value.
That's true, but claiming the RFC just 'trusts' the users to
initialise them is a miss-representation of the RFC to me. The RFC
catches the mistake if the programmer fails to initialise the variable
then reads from it.
> If not, the object created would not be fully initialised,
This is always going to be the case, unless you're proposing to
deprecate ReflectionClass::newInstanceWithoutConstructor .... which is
going to break a huge number of applications.
tbh, I really don't see a real problem that needs to be fixed. For me
it is the equivalent of this:
function foo() : int {
return "five";
}
This gives an error when the code is run, not when the code is
compiled, despite it being a 'detectable' error. In most compiled
languages, this error would be detected at the compilation step. In
'dynamic' languages it is detected at run-time.
The same is true for classes with typed properties. Yes, if you make a
mistake and forget to set a typed property before using an object
there will be an error.
That would only be a problem in production if you don't run that code
at all in development or in test....which is true of many, many
things.
cheers
Dan