Edit report at https://bugs.php.net/bug.php?id=40837&edit=1

 ID:                 40837
 Comment by:         accounts dot php at nickawilliams 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:

I also support this proposal. On numerous occasions throughout my career 
writing 
PHP I have found a need for this. While there are workarounds that work, they 
are 
all fairly verbose, convoluted, and/or difficult to follow. Please consider 
reopening this!


Previous Comments:
------------------------------------------------------------------------
[2012-08-04 00:46:35] billco at fnarg dot com

Same here!  This is a very useful pattern in other languages, where the same 
method name can be used in both static and non-static contexts.

For example, a search() method in static context could create a new result 
object, while the non-static form would search within an existing result set.

While it is possible to mimic this sort of behaviour by first creating a 
"blank" object, it leads to dual-purpose methods (a big "if" statement), 
resulting in messy, unmaintainable code.  Why arbitrarily force developers to 
violate good OOP practices ?

------------------------------------------------------------------------
[2012-06-28 08:15:27] info at renemaas dot de

Yeah this would be really helpful. I hope anybody of the PHP team will 
implement 
this kind of "stupid" feature. If not them please provide a "cool" solution for 
using static and non-static functions.

------------------------------------------------------------------------
[2011-12-21 18:26:14] mac at macnewbold dot com

I agree with martijntje and nick.telford - the static function and normal 
function of the same name shouldn't have any conflict, and it would be 
extremely helpful to be able to define the same function for use both 
statically and non-statically.

In the meantime, I'm going to try using __call() and __callStatic() to pretend 
like this feature actually exists.

------------------------------------------------------------------------
[2011-11-26 22:17:42] martijntje at martijnotto dot nl

I have no idea why this bug is closed as 'bogus'. Just because the 
documentation 
states it is a certain way does not mean that it is right.

I, for one, believe that it should be possible to create both a static and a 
member function with the same name. There would never be any confusion as to 
which function should be called due to the difference of using the :: or -> 
operator.

------------------------------------------------------------------------
[2007-03-16 17:40:02] he...@php.net

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

.

------------------------------------------------------------------------


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

Reply via email to