Since static method calls are completely disconnected from any class
instance asking which class the method call is from is rather meaningless,
and no, I don't think there is any way to get that.

-Rasmus

On Wed, 2 Oct 2002, Nick Eby wrote:

> 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