
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!
- Anmelden um Kommentare zu schreiben
Euch gefällt mein Blog?
Vielleicht hilft mir auch ein Buch, euch zukünftig (noch) bessere Artikel zu bieten? (Amazon Wunschliste)
Gerne bewerte ich auch ab und zu einmal unabhängig ein Produkt.
Ich freue mich über jede Art der Unterstützung in Form von Kommentaren, Lob oder Kritik.
Auf zum Kontaktformular!
Zu meinem Google+ Profil
Julian Pustkuchen, M. Sc. Wirtschaftsinformatik ist passionierter Software- & Webentwickler mit den Schwerpunkten Softwaredesign, Objektorientierung sowie Usability- & Ablaufoptimierung bei webks. Ein weiterer Schwerpunkt ist die Entwicklung im CMS Drupal.
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)".
Webbasierte Lösungen? Machen wir!
webks: websolutions kept simple
http://www.webks.de
Dir hat dieser Beitrag viel Zeit und Nerven gespart?
Dann freue ich mich über jede kleine Anerkennung:
Oder du suchst weitere professionelle Unterstützung?
Dann bietet dir unser webks.de Softwareentwickler-Team professionelle Dienstleistungen im Web-Development und der Drupal CMS Entwicklung!