Die Klasse muss von einer Anderen Klasse geerbt werden. Die erbende Klasse kann danach nicht mehr mit new instanziiert werden. Man kommt nur noch durch die statische “getInstance”-Methode an eine Instanz dieser Klasse($instVonKlasse = Klasse::getInstance()).

<?php
abstract class fx_Singleton
{
  private static $___instances = array();

  final public static function getInstance()
  {
    $class = get_called_class();
    if( empty(self::$___instances[$class]) )
      self::$___instances[$class] = new $class();  
    return self::$___instances[$class];
  }
 
  protected function __construct()
    {}
     
    final private function __clone()
    {}

    final private function __sleep()
    {}

    final private function __wakeUp()
    {}
}
?>