Final variables
| From: | David Rodrigues | Date: | Wed, 28 Jun 2017 16:10:51 +0000 |
| Subject: | Final variables | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-99657@lists.php.net to get a copy of this message | ||
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?
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;
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