Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie ein Singleton-Muster in PHP

So implementieren Sie ein Singleton-Muster in PHP

王林
王林Original
2020-07-23 15:23:473674Durchsuche

So implementieren Sie den Singleton-Modus in PHP: Um den Singleton-Modus zu implementieren, müssen Sie sicherstellen, dass eine Klasse nur eine Instanz hat und einen globalen Zugriffspunkt bereitstellen, um darauf zuzugreifen. Das Singleton-Muster erstellt keine Kopie der Instanz, sondern gibt einen Verweis auf die in der Singleton-Klasse gespeicherte Instanz zurück.

So implementieren Sie ein Singleton-Muster in PHP

Definition des Singleton-Musters:

(empfohlenes Tutorial: PHP-Tutorial)

Stellen Sie sicher, dass es nur eine Instanz einer Klasse gibt, und stellen Sie einen globalen Zugriffspunkt darauf bereit. Es wird keine Kopie der Instanz erstellt, sondern eine Referenz auf die in der Singleton-Klasse gespeicherte Instanz zurückgegeben.

Drei Elemente des Singleton-Musters:

  • Erfordert eine statische Mitgliedsvariable, die eine eindeutige Instanz der Klasse enthält.

  • Konstruktoren und Klonfunktionen müssen als privat deklariert werden, um zu verhindern, dass externe Programme Kopien der Instanz erstellen oder erstellen.

  • muss eine öffentliche statische Methode für den Zugriff auf diese Instanz bereitstellen und dadurch einen Verweis auf die eindeutige Instanz zurückgeben.

Code-Implementierung:

class Singleton
{
    //创建静态私有的变量保存该类对象
    static private $instance;

    //防止使用new直接创建对象
    private function __construct(){}

    //防止使用clone克隆对象
    private function __clone(){}

    static public function getInstance()
    {
        //判断$instance是否是Singleton的对象,不是则创建
        if (!self::$instance instanceof self) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    public function test()
    {
        echo "我是一个单例模式";
    }
}

$sing = Singleton::getInstance();
$sing->test();
$sing2 = new Singleton(); //Fatal error: Uncaught Error: Call to private Singleton::__construct() from invalid context in
$sing3 = clone $sing; //Fatal error: Uncaught Error: Call to private Singleton::__clone() from context

Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein Singleton-Muster in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn