> 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().

Reply via email to