Re: Object Inheritance, get_class() and a static function call

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Jochem,


either you tested some different code to what you posted above OR
(your build of?) 5.0.3 is borked.

sorry, I didn't tested the code at all, because my code is more complex. I just tried to show the problem.

class ClassA {
  public static function getClassName() {
      return get_class($this); //  [1]
   // or [2]   return get_class(self);
   // or [3]   return __CLASS__;
  }
 }
class ClassB extends ClassA { }
echo ClassB::getClassName();

I am searching for a function to use in line [1] so that the script's output is "ClassB".

I tested this on 5.0.2 and 5.0.4 and both did exactly what I expected, namely
output nothing - $this is not defined when you call ClassB::getClassName()
(because you make a static call) so nothing is the only logical output.

my fault, again, sorry. I jumbled the different outputs. I understood that this behaviour is coherent.


maybe you mean:

class ClassA {function getClassName() { return get_class($this); }}
class ClassB extends ClassA {}
$B = new ClassB();
echo $B->getClassName();

which _does_ work but is fairly pointless because you
already know the classname in order to be able to create the object
in the first place.

that's true. I don't want to use this. I just checked it.


I don't really see what the problem is, can you give some
more real world detail on what you are trying/want to do?

otherwise (re-)read this chapter:
http://php.belnet.be/manual/en/language.oop5.php

http://php.belnet.be/manual/en/language.oop5.static.php#48234
is better. but it seems that even debug_backtrace() is not what i'm looking for...


... if you're _really_ into generic code then the reflection API

no, no generic code. ;)

regards
axel

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux