If a constructor gets overridden, why should it not be the same behaviour with all methods?
-----Original Message----- From: Derick Rethans [mailto:[EMAIL PROTECTED] Sent: 21 July 2006 10:31 To: Mike Bretz Cc: internals@lists.php.net Subject: Re: [PHP-DEV] RfC: rethink OO inheritance strictness On Fri, 21 Jul 2006, Mike Bretz wrote: > Michael Wallner wrote: > > [EMAIL PROTECTED]:~/build/php-unicode-debug$ cli > > -d"error_reporting=8191" -r 'class c{function f(){}} class d extends > > c{function f($a){}}' > > Fatal error: Declaration of d::f() must be compatible with that of > > c::f() in Command line code on line 1 > > > > > > I *really* think that this enforcements are no good idea and I _beg_ > > you that we leave this "area" to interfaces. > +1 > > In real live "C++" world I often have parent classes with function f() > and an extended class which also uses the function name f(..) but with > other, possibly class specific, variables, which then calls parent > f()... I do not see a good reason to enforce that both functions must be > exactly the same when extending, especially since c::f() does not get > called automatically, _when_ overwriting it in class d. It's quite a different thing in C++ as there you have method overloading which PHP doesn't have. Therefore your argument doesn't hold here as they are simply *two different* methods, and not an overriden one. In your code that uses the derived class you can still use both methods (one without, and the one with parameters). Derick -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php