Jump to content

[SOLVED] get class names


mika

Recommended Posts

I'd like to figure out the name of a class that is not instantiated yet, here is an example:

 

<?php
class A {
  public function myClassName(){
    if(is_object($this)) {
      return get_class($this);
    } else {
      // __CLASS__ and get_class() return always A
      return " ? ";
    }
  }
}
class B extends A {}

class C extends B {}

// here is what I expect to be
$a=new A();
echo $a->myClassName();
$b=new B();
echo $b->myClassName();
$c=new C();
echo $c->myClassName();

// but here ...
echo A::myClassName(); // want A
echo B::myClassName(); // want B
echo C::myClassName(); // want C

?>

 

Maybe there is no straight solution and I'm doing all wrong here.

Link to comment
https://forums.phpfreaks.com/topic/87979-solved-get-class-names/
Share on other sites

The thing is I need the information from which class the object was instantiated or which class the method was called from ; in other words I need as a result of my sample ABCABC. I think a static method will always return AAAAAA, am I right? Can you post me some code for your solution. Thanks.

I mean this

<?php
class A 
{
  public static function myClassName()
  {
    return __CLASS__; 
  }
}
class B extends A
{
    public static function myClassName()
    {
        return __CLASS__;
    }
}
class C extends B
{
    public static function myClassName()
    {
        return __CLASS__;
    }
}
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.