Hi Robert

Am 16.01.2015 um 11:04 schrieb Robert Stoll:
Hi Stas,

-----Ursprüngliche Nachricht-----
Von: Stanislav Malyshev [mailto:smalys...@gmail.com]
Gesendet: Mittwoch, 14. Januar 2015 21:26
An: Marc Bennewitz; internals@lists.php.net
Betreff: Re: [PHP-DEV] [RFC] Skipping parameters take 2

Hi!

Is it possible to use the default parameter on inheritance?

class Bar {
     function foo($a='a', $b='b') {}
}

class Baz extends Bar {
     function foo($a=default, $b=default) {
         // do something
         parent::foo($a, $b);
     }
}
It's not part of the original proposal, and I'm not sure how easy it would be 
to implement, but it sounds like a nice
extension, I didn't think about it. Since the RFC is already in vote, I won't 
change it now, but I'll look into if
it's possible to do
it, and if the RFC is accepted, and it proves possible, I'll propose it 
separately.

--
Stas Malyshev
smalys...@gmail.com
This would be quite a nice feature, even if this RFC does not pass. Just as 
hint, there are ambiguous case which need to
be considered:

interface A{
function foo($a=1);
}
interface B{
function foo($a="hi");
}
class C implements A, B{
function foo($a=default){} //what would be the default value?
}

Cheers,
Robert
The default value have be the one of the parent.
if there is no parent you have the following options:

   * Syntax error (I prefer)
   * If defined use from interface

       * If ambiguous:

           * Syntax error
           * Choose one (bad in my opinion)


Marc

Reply via email to