Re: internals Digest 28 Nov 2014 20:06:36 -0000 Issue 3524
| From: | Walter Parker | Date: | Fri, 28 Nov 2014 21:15:20 +0000 |
| Subject: | Re: internals Digest 28 Nov 2014 20:06:36 -0000 Issue 3524 | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-79297@lists.php.net to get a copy of this message | ||
>
> ---------- Forwarded message ----------
> From: Carlos Rodrigues <carlos@jp7.com.br>
> To: internals@lists.php.net
> Cc:
> Date: Fri, 28 Nov 2014 17:29:37 -0200
> Subject: Static functions Vs Nonstatic functions
> PHP has evolved a lot in recent years but we still can't have a static and
> a nonstatic function with the same name:
>
> class A {
> function bla() { echo 'normal'; }
> static function bla() { echo 'static'; }
> }
>
> A::bla();
>
> ## ERROR: Cannot redeclare A::bla()
>
> And also PHP supports calling static functions as if they were not static:
>
> class B {
> static function bla() { echo 'how come it works'; }
> }
>
> $object = new B;
> $object->bla();
>
>
> It confuses programmers that came from other languages, prevent APIs from
> having meaningful names on static methods and have no other benefit than
> supporting PHP 4 code.
>
> I'd appreciate if anyone with sufficient knowledge/influence helped me
> suggest this change to the maintainers.
>
> IMHO, static and nonstatic functions should be "stored" in different
> places. And if someone relies on this, one should use magic methods __call
> and __callStatic instead.
>
>
> Thanks for your time and patience,
>
>
> Carlos Rodrigues
> carlos@jp7.com.br
>
>
Why should static and non-static functions exist in separate namespaces?
Are there any good reasons why a static function and an instance method of
the same class need to have the same name? It sounds like someone is trying
to a partial idea from another language to PHP without considering all of
the ramifications.
Walter
--
The greatest dangers to liberty lurk in insidious encroachment by men of
zeal, well-meaning but without understanding. -- Justice Louis D. Brandeis
--
The greatest dangers to liberty lurk in insidious encroachment by men of
zeal, well-meaning but without understanding. -- Justice Louis D. Brandeis