> On 25 Jan 2017, at 09:48, Scott Arciszewski <[email protected]> wrote:
>
> All,
>
> Given that we can now declare a class constant as public, protected, or
> private, can we also declare them final in 7.2?
>
> https://3v4l.org/rJG0V
>
> Ideally, this code would error on line 18 rather than 15.
>
> Scott Arciszewski
> Chief Development Officer
> Paragon Initiative Enterprises <https://paragonie.com>
In my book, ideally, there would be no class constant inheritance as inherited
constants don't really make sense when they are known at compile time. People
often use this feature in order to get things like this to work:
class LibLevelClass {
const FOO = "default";
public function doSomething() {
echo "the value of FOO is: " . static::FOO;
}
}
class ExtensionClass {
const FOO = "custom";
}
But this approach is error prone due to untyped nature of constants (one could
override the constant with an array value). In the end this inheritance is
always unnecessary.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php