PHP allows static method calls...  But back to my original question...
inside a method that has been called statically, can I determine for what
class the method was called?  Again, obviously the question is only
applicable if there is some inheritance involved, and the child class does
not declare the method in question.  Below is my original example spelled
out in code... the call to get_class is not valid since there won't be a
$this variable in the context of the static method...  Can I replace it with
something that will cause it to echo "B"?

Class A {
function staticFunc() { echo get_class($this); }
}

Class B extends A {}

B::staticFunc();

thanks again
/nick

----- Original Message -----
From: "Rasmus Lerdorf" <[EMAIL PROTECTED]>
To: "Debbie Dyer" <[EMAIL PROTECTED]>
Cc: "Nick Eby" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Wednesday, October 02, 2002 3:08 PM
Subject: Re: [PHP] Inheritance and a class function: on what class was it
called?


> > The mistake is mine not yours. I know about the :: operator I use it all
the
> > time (but within classes parent::function() etc) - but I never realised
> > until now that PHP will let you use any class before instantiation (and
> > nearly all my PHP work uses classes). I have never even attempted to try
it
> > because in all other languages I know trying to use an ordinary class
before
> > instantiation will just result in a null pointer error or the equivalent
of
> > one.
> >
> > PHP OOP is different I know, one big example is that there is no
provision
> > for data encapsulation - one of the main objectives of OOP, neither can
you
> > differentiate between types of classes/methods (which is probably what
is
> > causing the confusion).
> >
> > Now it seems it is even more different than I thought. All I can say is
> > mmhh.......
>
> Most OO languages allow static method calls.  C++, Java, Python, Ruby,
> etc.  PHP may have some OO differences, but this is not one of them.
>
> -Rasmus


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to