RE: [PHP] parent and grandparent member functions

From: Date: Wed, 20 Jun 2001 15:44:37 +0000
Subject: RE: [PHP] parent and grandparent member functions
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-54557@lists.php.net to get a copy of this message
it looks like your solution *is* elegant... i tried out your code, becuase i was astonished that such a simple thing allegedly wasn't working... and it did work. below is the exact code i had in my text editor, and it executed perfectly. when i called $c->make(), it printed "A:: MAKE". ..am i misunderstanding your problem? <? class a { function make() { // some code print "A:: MAKE"; } } class b extends a { function make() { // some code parent::make(); } } class c extends b { function make() { // some code parent::make(); } } $c = new c(); $c->make(); ?> > -----Original Message----- > From: Lenar Lõhmus [mailto:lenar@dotcom.ee] > Sent: 20 June 2001 09:01 > To: php-general@lists.php.net > Subject: [PHP] parent and grandparent member functions > > > Hello, > > I hit a wall. No offense, but this OO stuff in PHP is somehat weird, but > skip to the problem. > I have for example three classes: > > class a { > function make() { > // some code > } > } > > class b extends a { > function make() { > // some code > parent::make(); > } > } > > class c extends b { > function make() { > // some code > parent::make(); > } > } > > now the class 'c' is instantiated and the member function 'make' is called. > All works up to the point where 'b'::make calls parent::make(). > It seems to call itself :(. I can understand this is logical behaviour since > it's still an instance of class c, > so parent:: is still b::, but how should I call that grandparent's make()??? > This doesn't seem like a good OOP. > For example delphi's 'inherited' works relative to the class it's used in > and it is way more useful than php's way. > > is there any elegant soultion(s) to my problem? > > Lenar Lõhmus

« previous php.general (#54557) next »