On 14 February 2015 20:03:44 GMT, Marc Bennewitz <dev@mabe.berlin> wrote:
>Hi
>Am 13.02.2015 um 08:48 schrieb Stanislav Malyshev:
>> Hi!
>>
>>> there should be no bc break as the API doesn't change and the method
>>> produces the exact same result as before.
>> Sorry, this makes no sense to me. You claim that if you changed the
>> method code to do different thing it should continue working as if
>you
>> didn't change it? Why? I just don't get it.
>>
>>> It's not a good thing to magically change the method API in base of
>a
>>> method body that's not port of the API.
>> "magically change the method API"? What are you talking about? You
>> changed the code, not magic.
>>
>Sorry it wasn't clear. I hope I will now:
>
>The static modifier for methods is part of the method signature and 
>method body isn't.
>(That's way interfaces doesn't describe method bodies but signatures)
>
>The static modifier defines a method as static and therefore defines
>the 
>method is callable using "::".

More specifically, it defines that the method is *only* callable statically. 
There is currently no opposite keyword to say that a method can only be called 
non-statically, but the absence of a modifier has up until now meant that 
either call type is possible. An interface cannot currently forbid static 
calls, only the use of $this.

Our choice is between keeping that ambiguity, and introducing a new rule that 
any method not marked static must never be called statically (with provisos for 
technically non-static parent:: etc).

Regards,
-- 
Rowan Collins
[IMSoP]


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to