mika Posted January 26, 2008 Share Posted January 26, 2008 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 More sharing options...
KrisNz Posted January 27, 2008 Share Posted January 27, 2008 the MyClassName method should technically be marked static if you want to access it without an instance and all child classes will need to override that method. Link to comment https://forums.phpfreaks.com/topic/87979-solved-get-class-names/#findComment-450150 Share on other sites More sharing options...
mika Posted January 27, 2008 Author Share Posted January 27, 2008 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. Link to comment https://forums.phpfreaks.com/topic/87979-solved-get-class-names/#findComment-450166 Share on other sites More sharing options...
KrisNz Posted January 27, 2008 Share Posted January 27, 2008 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__; } } ?> Link to comment https://forums.phpfreaks.com/topic/87979-solved-get-class-names/#findComment-450172 Share on other sites More sharing options...
mika Posted January 27, 2008 Author Share Posted January 27, 2008 Thank you very much, it's working now! Link to comment https://forums.phpfreaks.com/topic/87979-solved-get-class-names/#findComment-450368 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.