Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Anwendungsfälle von PHP-Singleton-Mustern

Detaillierte Erläuterung der Anwendungsfälle von PHP-Singleton-Mustern

php中世界最好的语言
php中世界最好的语言Original
2018-05-16 14:11:521703Durchsuche

Dieses Mal werde ich Ihnen die Anwendungsfälle des PHP-Singleton-Modus ausführlich erläutern. Was sind die Vorsichtsmaßnahmen bei der Verwendung des PHP-Singleton-Modus?

Die Beispiele in diesem Artikel beschreiben die Prinzipien und Implementierungsmethoden des Singleton-Musters in PHP-Entwurfsmustern. Teilen Sie es als Referenz mit allen:

1. Was ist das Singleton-Muster? dass es nur eine Klasse einer bestimmten Klasseninstanz gibt und externen Zugriff auf diese globale Instanz ermöglicht. Es erstellt keine Kopie der Instanz, sondern gibt einen Verweis auf die intern in der Singleton-Klasse gespeicherte Instanz zurück.

Drei Elemente des PHP-Singleton-Modus

1. Eine statische Mitgliedsvariable ist erforderlich, um die einzige Instanz der Klasse zu speichern.

2. Konstruktoren und Klonfunktionen müssen als privat deklariert werden, um zu verhindern, dass externe Programme Instanzkopien erstellen oder kopieren.

3. Für den Zugriff auf diese Instanz muss eine öffentliche statische Methode bereitgestellt werden, die einen Verweis auf die eindeutige Instanz zurückgibt.

3. Warum den Singleton-Modus verwenden

Die Vorteile der Verwendung des Singleton-Modus sind großartig, nehmen Sie den Datenbankbetrieb

als Beispiel. Wenn der Singleton-Modus nicht übernommen wird und eine große Anzahl von Datenbankoperationen im Programm auftritt, müssen jedes Mal neue Operationen ausgeführt werden, was eine große Menge an Speicherressourcen und Systemressourcen verbraucht. Darüber hinaus wird jedes Mal eine Datenbankverbindung geöffnet geschlossen, es ist eine Auswirkung auf die Datenbank. Ein großer Test und eine Verschwendung. Im Singleton-Modus muss es nur einmal instanziiert werden und es müssen nicht jedes Mal neue Vorgänge ausgeführt werden, was den Ressourcenverbrauch erheblich reduziert.

4. Beispiel für den Singleton-Modus

Hier nehmen wir den Datenbankbetrieb als Beispiel

<?php
/**
*  单例模式
**/
class Db
{
  //保存全局实例
  private static $instance;
  //数据库连接句柄
  private $db;
  //数据库连接参数
  const HOSTNAME = "127.0.0.1";
  const USERNAME = "root";
  const PASSWORD = "root";
  const DBNAME = "testdb";
  //私有化构造函数,防止外界实例化对象
  private function construct()
  {
    $this->db = mysqli_connect(self::HOSTNAME,self::USERNAME,
      self::PASSWORD,self::DBNAME);
  }
  //私有化克隆函数,防止外界克隆对象
  private function clone()
  {
  }
  //单例访问统一入口
  public static function getInstance()
  {
    if(!(self::$instance instanceof self))
    {
      self::$instance = new self();
    }
    return self::$instance;
  }
  //数据库查询操作
  public function getinfo()
  {
    $sql = "select * from testtb";
    $res = mysqli_query($this->db,$sql);
    while($row = mysqli_fetch_array($res)) {
      echo $row[&#39;testcol&#39;] . &#39;<br />&#39;;
    }
    mysqli_free_result($res);
  }
}
$mysqli = Db::getInstance();
$mysqli->getinfo();
?>

Ich glaube, Sie haben die Methode beherrscht, nachdem Sie den Fall gelesen haben Dieser Artikel, mehr Bitte beachten Sie andere verwandte Artikel auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Eine Fallstudie zum PHP-Generieren eines QR-Code-Posters


Detaillierte Erläuterung der PHPExcel-Änderungsschritte

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Anwendungsfälle von PHP-Singleton-Mustern. 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