2017-06-28 18:59 GMT+02:00 Kalle Sommer Nielsen <ka...@php.net>:

> Hi David
>
> 2017-06-28 18:10 GMT+02:00 David Rodrigues <david.pro...@gmail.com>:
> > Hello internals,
> >
> > Java supports the "final" keyword before a variable to determines that
> this
> > variables never change it reference. If I declare a variable as "final",
> I
> > can only initialize that once, then I could not change it after (but I
> can
> > manipulate the instance, without issues).
> >
> > There some special reason to PHP doesn't supports things like that?
>
> It seems like what you are looking for here is actually a constant[1].
> However constants do not support non scalar types, such as array or
> objects,


Arrays are supported, but not objects.

Regards, Niklas


> what would really solve it on the objects side of things
> would be the introduction of a "readonly" keyword or similar, like
> that of C#[2]
>
> > final $number = 123;
> > $number = 456; // Error: you change change final variables.
> >
> > final $object = new stdClass;
> > $object->allowed = true; // No error.
> >
> > This feature make sense because it tells to dev that the variable value
> > could not be updated directly (new reference). Which make easy to
> identify
> > when a variable is modifiable or not.
> >
> > It is valid for a RFC?
> >
> > - It can uses the "final" keyword;
> > - It doesn't a BC;
>
> Anything is usually valid for an RFC, however I think (personally)
> that this should rather be an RFC for a readonly keyword if anything
>
> > I too think that a final variable can be useful to make some internal
> > improvements on language (but it could be a BC for PHP internals). I
> mean,
> > as the variable could not be modified, then it don't need be a "flexible"
> > type internally (I guess that it is a zval, right?).
> >
> > Reference: https://github.com/kalessil/phpinspectionsea/issues/363
> >
> > --
> > David Rodrigues
>
>
> [1] http://php.net/constants
> [2] https://docs.microsoft.com/en-us/dotnet/csharp/language-
> reference/keywords/readonly
>
> --
> regards,
>
> Kalle Sommer Nielsen
> ka...@php.net
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to