echo $begrüßung;
Gestattest du eine Korrektur und zwei Anmerkungen? (-:
> class singleton {
> function sigleton($host,$user,$pass,$db) {
> # mach was, Verbindung herstellen, etc, pp
> }
>
> function getInstance($host,$user,$pass,$db) {
Bei Rückgabe einer Referenz muss das & sowohl bei der Funktionsdeklaration als auch bei der Verwendung angegeben werden:
function &getInstance($host,$user,$pass,$db) {
> static $instance;
>
> if(!isset($instance)) $instance = new sigleton($host,$user,$pass,$db);
Hier kann es sinnvoll sein, eine Referenz des erzeugten Objekts statt einer Kopie davon zu speichern. Das kommt hauptsächlich drauf an, ob mit weiteren Referenzen im Konstruktor gearbeitet wird.
if(!isset($instance)) $instance =& new sigleton($host,$user,$pass,$db);
return $instance;
}
}
>
> Jetzt kannst du an jeder Stelle deines Codes die gleiche Instanz deiner
> Datenbank-Klasse bekommen, indem du getInstance() aufrufst:
>
> ~~~php
> $db =& singleton::getInstance("param1","param2","param3","param4");
>
Abschließend sei noch darauf hingewiesen, dass PHP5 bei der Übergabe von Objekten von Haus aus mit Referenzen statt Kopien arbeitet, die & also entfallen können.
Wenn man nicht kompatibel zu PHP4 sein muss/möchte hält das Handbuch eine Implementation des Singleton-Patterns bereit: http://de2.php.net/manual/en/language.oop5.patterns.php
echo "$verabschiedung $name";