Nikita Popov wrote on 12/02/2015 14:24:
Hi internals,

As part of [1] and [2] we have decided to remove support for doing static
calls to instance methods, if this would result in an incompatible $this
variable to be used. When applying [3] this change we found that the change
as originally intended may be too strict.

[snip]

The compromise I'd like to implement instead is to only throw a fatal error
if $this is actually used in the called method and otherwise throw a
deprecation warning. Calls from instance methods, static methods and
functions will all be handled the same.

[snip]

I'm definitely in favour of this over completely forbidding such calls.

The only thing I'd question is the use of E_DEPRECATED when the static call doesn't use $this. Is there actually any intent to change the behaviour in a future version? What is the advantage to doing so? It strikes me as rather like the case of "var" for properties, which had the deprecation notice removed.

I think it would make more sense to raise an E_STRICT, since the main purpose seems to be to discourage users making such calls.

Regards,
--
Rowan Collins
[IMSoP]

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

Reply via email to