Wer innerhalb einer Klasse (z.B. einer generischen Singleton-Klasse [Generic_Singleton] im Destructor (__destruct()) auf den Namen der Child-Klasse (die erbende Klasse) zugreifen muss/möchte, der wird feststellen, dass __CLASS__ an dieser Stelle (so wie es auch sein sollte) den Namen der Klasse die die Methode enthält (in diesem Beispiel die generische Singleton-Klasse) beinhaltet (Generic_Singleton). Möchte man aber den Namen der Klasse die von Generic_Singleton erbt erhalten, hilft folgender Aufruf:
1 2 3 |
Somit erhält man bei Aufruf von foo(); den Namen der Child-Klasse.
Ich weiß nicht inwieweit dies ein “Bug” in PHP ist, der ggf. mit PHP 5.3 oder 6 beseitigt wird. Aber momentan getestet unter 5.2.9 funktioniert dies einwandfrei.
Kommentare