# Overloading

- Thread: https://externals.io/message/38458
- Original archive: https://news-web.php.net/php.internals/38458
- Started by Tinsley on 2008-06-20T12:51:44+00:00
- Messages: 3
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #38458 — Tinsley — 2008-06-20T12:51:44+00:00

URL: https://externals.io/message/38458#38458

I only could find two from 2005.
http://news.php.net/php.internals/17491
http://news.php.net/php.internals/14558

It doesn't look like much discussion. I'm new to that web interface; not
sure if it will show the thread.

Why don't we discuss adding this to the PHP6 release? I see it as a very
helpful addition and can't see a reason why we could not add it.

Mark


-----Original Message-----
From: Saulo Vallory [mailto:saulovallory@gmail.com] 
Sent: Thursday, June 19, 2008 11:12 AM
To: internals Mailing List
Subject: Re: [PHP-DEV] Overloading

I'm developing a PHP framework and had the same issue sometimes... I
think
it was already discussed in the list, did you searched the archives?

Saulo

On Thu, Jun 19, 2008 at 9:58 AM, Tinsley, Mark
<MTinsley@dallasairmotive.com>
wrote:

> What about the addition of overloading for PHP 6?
>
> I am not totally up to date on the developments of the parameter type
> hints. I briefly read the meeting minutes for PHP 6.
>
> What about with the type hints we have now?
>
> class moo
> {
>
>    public static function foo(FooClass $FooVar)
>    {
>        // do something
>    }
>
>    public static function foo(BooClass $BooVar)
>    {
>        // do something
>    }
> }
>
>
> I have a project where we had to do a sort of pseudo overloading
>
> Class moo
> {
>    /**
>     * Accept the superclass or any of its sub classes
>     */
>    public static function foo(FooSuperClass $Foo)
>    {
>        switch (true)
>        {
>        case $Foo instanceof FooClass:
>            $method = 'fooFoo';
>            break;
>
>        case $Foo instanceof BooClass:
>            $method = 'fooBoo';
>            break;
>
>        default:
>            throw new Exception('Unrecognized type: ' .
> get_class($Foo));
>            break;
>        }
>
>        call_user_func(array(self, $method), $Foo);
>    }
>
>    private static function fooFoo(FooClass $FooVar)
>    {
>        // do something
>    }
>
>    private static function fooBoo(BooClass $BooVar)
>    {
>        // do something
>    }
> }
>
> Mark

---

## #38466 — Marcus Boerger — 2008-06-20T14:28:48+00:00

URL: https://externals.io/message/38458#38466 · In reply to: #38458

Hello Mark,

  we discussed overloading a hell lot of times an dthe conclusionj always
and every single time has been NO. It would mean a large slowdown for
every single PHP application out there and it is not really that much
halpful. In fact it makes code less readable and maintainable so it
opposes the KISS (Keep It Simple Safe) approach of PHP.

marcus

Friday, June 20, 2008, 2:51:44 PM, you wrote:

> I only could find two from 2005.
> http://news.php.net/php.internals/17491
> http://news.php.net/php.internals/14558

> It doesn't look like much discussion. I'm new to that web interface; not
> sure if it will show the thread.

> Why don't we discuss adding this to the PHP6 release? I see it as a very
> helpful addition and can't see a reason why we could not add it.

> Mark


> -----Original Message-----
> From: Saulo Vallory [mailto:saulovallory@gmail.com] 
> Sent: Thursday, June 19, 2008 11:12 AM
> To: internals Mailing List
> Subject: Re: [PHP-DEV] Overloading

> I'm developing a PHP framework and had the same issue sometimes... I
> think
> it was already discussed in the list, did you searched the archives?

> Saulo

> On Thu, Jun 19, 2008 at 9:58 AM, Tinsley, Mark
> <MTinsley@dallasairmotive.com>
> wrote:

> > […]





Best regards,
 Marcus

---

## #38615 — Lukas Kahwe Smith — 2008-06-25T14:50:47+00:00

URL: https://externals.io/message/38458#38615 · In reply to: #38466

> Hello Mark,
>
>  we discussed overloading a hell lot of times an dthe conclusionj  
> always
> and every single time has been NO. It would mean a large slowdown for
> every single PHP application out there and it is not really that much
> halpful. In fact it makes code less readable and maintainable so it
> opposes the KISS (Keep It Simple Safe) approach of PHP.

FYI, for future reference I at least added a link to the rfc page to  
this thread:
http://wiki.php.net/rfc#declined

regards,
Lukas Kahwe Smith
mls@pooteeweet.org
