PHP 5.2: Klassenname eines konkreten Kindobjektes in abstrakter Klasse erhalten
Ich hatte nun schon öfter das Vergnügen, den Klassennamen eines Objektes in der abstrakten Elternklasse zu benötigen.
Dies ist zum Beispiel erforderlich, um eine statische Methode, aus einer Methode der abstrakten Klasse heraus, auf der konkreten Klasse aufzurufen.
Zunächst hatte ich die Idee dies über die magische Konstante __CLASS__ zu lösen. Sinnvollerweise (keine Ironie) liefert diese allerdings den Namen der abstrakten Klasse, in der die Methode steht zurück.
Also hier die Lösung, wie man das ganze sinnvoll mit etwas Verstand lösen kann, nämlich einfach per "get_class($this)":
- abstract class AbstractTest {
- public function getClassname1(){
- return __CLASS__;
- }
- public function getClassname2(){
- }
- }
- class Test extends AbstractTest {
- }
- $test = new Test();
- echo $test->getClassname1(); //Ergebnis: "AbstractTest"
- echo $test->getClassname2(); //Ergebnis: "Test"
Viel Spaß damit!
Julian Pustkuchen ist passionierter Software- & Webentwickler mit den Schwerpunkten Softwaredesign, Objektorientierung, Ablaufoptimierung und Usability bei webks. Ein weiterer Schwerpunkt ist die Entwicklung im CMS Drupal.
Er besitzt einen Abschluss als B.Sc. Wirtschaftsinformatik (dual) und studiert derzeit für seinen Abschluss als Master of Science Wirtschaftsinformatik.
Entwickelt Julian gerade keine Software, fährt er Ski, Mountainbike, spielt Badminton, segelt oder verbringt Zeit mit Freunden.
Dieser Blog dient als sein "öffentlicher Notizblo(ck/g)".
Neueste Blogeinträge
-
08.05.2012 - 17:41
-
03.05.2012 - 18:53
-
28.03.2012 - 10:28
Tags in Blogeintrag - Kategorie
Webbasierte Lösungen? Machen wir!
webks: websolutions kept simple
http://www.webks.de






Comments
Post new comment