RE: [PHP-DEV] Overloading
| From: | Tinsley, Mark | Date: | Fri, 20 Jun 2008 12:51:44 +0000 |
| Subject: | RE: [PHP-DEV] Overloading | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-38458@lists.php.net to get a copy of this message | ||
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
>
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>