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:[EMAIL PROTECTED]]
> Sent: 20 June 2001 09:01
> To: [EMAIL PROTECTED]
> 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


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to