Endlich möglich ab PHP 5.3 (derzeit Beta 5):
class Singleton
{
private $aInstances = array();
final public function getInstance()
{
$sClassName = get_called_class();
if (!isset(self::$aInstances[$sClassName]))
{
self::$aInstances[$sClassName] = new $sClassName();
}
return self::$aInstances[$sClassName];
} // function getInstance()
protected function __construct()
{
} // function __construct()
}
class KQE_AmDampfen extends Singleton
{
}
$oKQE = KQE_AmDampfen::getInstance();
ach du heilige kqe
sieht nett aus, eröffnet mal wieder viele neue möglichkeiten für kranken spielkram zu bauen.
Du solltest die clone Methode auch noch private machen. Ansonsten hast du keine wirkliche Singleton. Ich versteh auch nicht wirklich, warum du einen Array für die Instanz verwendest.
Aber trotzdem ganz nett
> Ich versteh auch nicht wirklich, warum du einen Array für die Instanz verwendest.
Damit man verschiedene Singletons bauen kann, nämlich einen pro Implementierung. z.B.
class KQE_AmDampfen extends Singletonclass KQE_AmKochen extends Singleton