Edit report at https://bugs.php.net/bug.php?id=40837&edit=1
ID: 40837
Comment by: capitaine dot gloumi at gmail dot com
Reported by: nick dot telford at gmail dot com
Summary: static and non-static functions can't have the same
name
Status: Not a bug
Type: Bug
Package: Class/Object related
Operating System: Irrelevant
PHP Version: 5.2.1
Block user comment: N
Private report: N
New Comment:
The "backward compatibility" should set to deprecated any static call of object
method, and use it IF NO static method with the same name exist.
I use static method and object method with same name in lot of paterns, it's
useful in lot of case.
Previous Comments:
------------------------------------------------------------------------
[2012-11-19 03:27:35] [email protected]
If a class is namespaced, by definition it isn't PHP 4 compatible.
------------------------------------------------------------------------
[2012-11-15 23:23:31] jpmarois at hotmail dot com
[email protected]:
Sure, go Microsoft's way and move forward by staying behind for the sake of
"compatibility".
Please explain why, "As of PHP 5.3.3, methods with the same name as the last
element of a namespaced class name will no longer be treated as constructor.".
If
PHP wont even initialize a "compatible" PHP 4 class anymore, how is it relevant
to
preserve instance methods being called statically?
------------------------------------------------------------------------
[2012-09-11 01:59:54] [email protected]
It breaks compatibility with any PHP 4 compatible code that uses static method
calls. That's (obviously) less important than it once was, but there's still
plenty of legacy code out there.
------------------------------------------------------------------------
[2012-09-10 15:29:23] mac at macnewbold dot com
[email protected] :
What would the impacts be of deprecating static calls to non-static methods?
They would seem to not make much sense, since any uses of $this inside the
method (which would be pretty typical since it is a non-static method) would
fail with "Fatal error: Using $this when not in object context". What is the
value of being able to attempt a static call on a non-static method?
------------------------------------------------------------------------
[2012-09-10 03:00:14] [email protected]
For the record, there's no way this can be implemented as it stands: for
backward compatibility reasons, instance methods can be called statically, so
the name has to be distinct to disambiguate between static and instance
methods. The call type is not enough.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=40837
--
Edit this bug report at https://bugs.php.net/bug.php?id=40837&edit=1