> Le Tue, 19 Mar 2013 09:37:43 +0200, Pierre du Plessis a écrit : > > It would break existing software if you have a class and function with > > the same name. > > Consider the following example: > > > > class foo { > > } > > > > function foo() > > { > > > > } > > > > Now what if you have several calls to foo() in your existing > > application? With the new change, will those calls call the function, or > > invoke the __invokeStatic method if it is available? > > It will clearly technically lead to a problem. Now I don't see why in the > world a class and a function could share the same name. Regarding > conventions, a class name should begin with an uppercase character and a > function a lowercase one. I don't see any relevant use case where a class > and a function should share the same name. > > PHP doesn't care about uppercase or lowercase when it comes to function names. Have a look at http://3v4l.org/cePT5 for an example. And not everybody uses conventions anyway (although they should)
Although it is not common to have a class and function have the same name, it can happen. Take the following code as an example. class Debug { public static dump($var) { // some code to debug $var } } function debug($var) { return Debug::dump($var); } The problem is clear if you have a __invokeStatic method in the debug class, and you want to make a call to debug().