Re: Declaration of Bar::__construct() must be compatible with that of Foo::__construct()

From: Date: Wed, 25 Feb 2004 22:52:20 +0000
Subject: Re: Declaration of Bar::__construct() must be compatible with that of Foo::__construct()
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-8130@lists.php.net to get a copy of this message
On Wed, 2004-02-25 at 23:44, Marcus Boerger wrote: > Hello Timm, > > i had the same expirience today too. And also for me it makes not much > sense. The constructor shouldn't check inheritance rules. Neither should other methods follow this. What if I want to add a non-default parameter to an overriden method? <?php class Foo { function connect($server) { } } class Bar extends Foo { function connect($server, $port) { } } ?> I see where the problem comes from: zend_do_perform_implementation_check() is called from do_inherit_method_check() (both in zend_compile.c) which in turn is called for inheritance *and* for interfaces. The behaviour is fully desirable when implementing interfaces but not for regular inheritance. - Timm

« previous php.internals (#8130) next »