dedlfix: Klassen und der static-Aufruf

Beitrag lesen

echo $begrüßung;

singleton soll sicherstellen, dass es von einer bestimmten klasse nur eine instanz gibt. diese anforderung ist aus dem posting des fragestellers nicht ersichtlich, und wohl auch nicht gemeint.

Es war ja nur ein Beispiel ohne direkten Bezug auf das Problem des OP, weil es nicht bekannt ist.

ab php5 ist ja eine erweiterung dahingehend vorgenommen, dass zwischen static und instanzaufrufen schon in der deklaration unterschieden wird, und sich diese methoden dann auch nur dementsprechend aufrufen lassen.

Jein. Auch unter PHP5 lassen sich statische Methoden als Instanz-Methoden aufrufen und umgekehrt. Es gibt dabei nur eine E_STRICT-Notice. E_STRICT ist auch nicht in E_ALL enthalten und muss noch extra hinzugefügt werden, beispielsweise: error_reporting(E_ALL | E_STRICT);

inwieweit singletons mit php5 sinn machen, kann ich nicht weiter kommentieren, da sich mir diese fragestellung bislang nicht im zusammenhang mit php gestellt hat.

Beispiel: eine Datenbankklasse. Beim ersten singleton-Aufruf wird sie initialisiert und bei weiteren Aufrufen gibt's die bereits initialisierte Instanz zurück.
Wobei man auch noch eine statische Query-Methode hinzufügen könnte, die sich ihrerseits mit self::singleton() der Instanz bedienen kann.
(Ja, es gibt auch Anwendungsfälle, in denen man mehrere Datenbankverbindungen braucht. Dann ist der singleton-Einsatz nur begrenzt bis gar nicht geeignet.)

echo "$verabschiedung $name";