I have just double checked my facts and in both Java and C++ you cannot
access members of an ordinary class without first instantiating the class.
In both cases the only way you can do so is if that class contains a member
specifically declared as being special ie a class member as opposed to an
instance member & specifically declared to be static.

PHP on the other hand will let you access any functions of any class without
instantiation.

Maybe this is because, as I said before, PHP has no concept of the different
class/var/method types usually associated with classes. This is all very
different to what I know and does (is) causing confusion.

Debbie

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


> Without them being defined in some special way?
>
> I am very surprised that after 7 years of OOP I dont know that but I will
> check it out tomorrow.
>
> Debbie
>
> ----- Original Message -----
> From: "Rasmus Lerdorf" <[EMAIL PROTECTED]>
> To: "Nick Eby" <[EMAIL PROTECTED]>
> Cc: "Debbie Dyer" <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>
> Sent: Wednesday, October 02, 2002 11:28 PM
> Subject: Re: [PHP] Inheritance and a class function: on what class was it
> called?
>
>
> > 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
>
>


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

Reply via email to