Hier mal ein kleines Beispiel mit einer einfachen Singleton-Klasse, wobei der Konstruktor auf private gesetzt ist:
PHP-Code:
<?php
class Singleton{
// statische private klasseninstanz
static private $_instance = null;
// konstruktor auf private, da es eine Singleton-klasse ist und nicht instanzieirt werden darf
private function __construct(){
// tu irgendwas
}
// einzige Zugriffsfunktion von aussen
public static function getInstance(){
// wenn keine Instanz besteht, erstelle eine neue
if (self::$_instance === null){
self::$_instance = new self();
}
// zurückgegeben wird immer nur die eine Instanz
return self::$_instance;
}
// braucht man nicht viel zu sagen *g*
public function getHelloWorld(){
return "Hello World";
}
}
echo Singleton::getInstance()->getHelloWorld(); // Ausgabe: Hello World
// neue Instanz erzeugen geht nicht
$test = new Singleton(); // Fatal Error: Call to private Singleton::__construct() from invalid context
[PHP][Snippet] Array zu XML konvertieren