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. Quote 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. Quote 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. Quote 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__; } } ?> Quote 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! Quote Link to comment https://forums.phpfreaks.com/topic/87979-solved-get-class-names/#findComment-450368 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.