Re: static:: and PHP 7 (from bug #70997)
| From: | Bob Weinand | Date: | Mon, 30 Nov 2015 12:47:26 +0000 |
| Subject: | Re: static:: and PHP 7 (from bug #70997) | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-89493@lists.php.net to get a copy of this message | ||
> Am 30.11.2015 um 13:23 schrieb Andreas Heigl <andreas@heigl.org>:
>
> Am 30.11.15 um 13:18 schrieb Peter Cowburn:
>> class A {
>>> const TEST = false;
>>> public function test() {
>>> var_dump(static::TEST);
>>> }
>>> }
>>>
>>> class B extends A {
>>> const TEST = true;
>>>
>>> public function test() {
>>> A::test();
>>> }
>>> }
>>>
>>> $b = new B;
>>> $b->test();
>>>
> You are calling explicitly A::test().
>
> When you call parent::test() everything works as you'd expect it.
>
> Have a look at https://3v4l.org/RCrRd
>
> Apart from that you are calling an instance-method as a static method by
> using A::test().
>
> Cheers
>
> Andreas
We do that, because we may not have any other choice, e.g. when calling a great-parents method. To
then use LSB, we have to explicitly name our parent.
This is now not possible anymore, and hence I’d consider this as a BC break at least, if not a
bug.
This definitely is not simply *not a bug*.
Bob