Was bedeutet Singleton in PHP?

WBOY
Freigeben: 2023-03-15 22:18:01
Original
2087 Leute haben es durchsucht

In PHP bedeutet ein Singleton, dass eine Klasse nur eine Instanz hat. Es bezieht sich auf ein Entwurfsmuster, bei dem eine bestimmte Klasse in der gesamten Anwendung nur eine Objektinstanz im Singleton-Muster bereitstellt Bei der gesamten Systeminstanz wird keine Kopie der Instanz erstellt, sondern es wird ein Verweis auf die in der Singleton-Klasse gespeicherte Instanz zurückgegeben.

Was bedeutet Singleton in PHP?

Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 7.1, Dell G3-Computer

Was bedeutet Singleton in PHP? Der Singleton-Modus bezieht sich auf das Design einer bestimmten Klasse im Ganzen Die Anwendung verfügt nur über ein Objektinstanzmodell. Konkret stellt das Singleton-Muster als Methode zur Objekterstellung sicher, dass eine Klasse nur eine Instanz hat, sich selbst instanziiert und diese Instanz global dem gesamten System zur Verfügung stellt. Es wird keine Kopie der Instanz erstellt, sondern eine Referenz auf die in der Singleton-Klasse gespeicherte Instanz zurückgegeben.

Eine Klasse hat nur eine Instanz und wird dem gesamten Programm nach der Instanziierung bereitgestellt. Sie kann auch so verstanden werden, dass sichergestellt wird, dass diese Klasse während der gesamten Programmausführung nur eine Instanz hat, und stellt eine globale Instanz bereit kann darauf zugreifen.

Merkmale des Singleton-Musters

Das Hauptmerkmal des Singleton-Musters ist „drei private und ein öffentliches“:

Erfordert eine private statische Mitgliedsvariable, die die einzige Instanz der Klasse enthält

Der Konstruktor muss deklariert werden privat, um zu verhindern, dass ein externes Programm ein neues Objekt erstellt und somit die Bedeutung eines Singletons verliert. Um zu verhindern, dass das Objekt geklont wird, muss eine öffentliche statische Methode (normalerweise mit dem Namen getInstance) bereitgestellt werden, um auf diese Instanz zuzugreifen , wodurch eine eindeutige Instanz zurückgegeben wird.

Gründe und Szenarien für die Verwendung des Singleton-Modus

In den meisten PHP-Anwendungen gibt es eine große Anzahl von Datenbankoperationen. Wenn der Singleton-Modus nicht verwendet wird, sind jedes Mal neue Vorgänge erforderlich, aber jeder neue verbraucht einen Viele Systemressourcen und Speicherressourcen, und jedes Mal, wenn die Datenbank geöffnet und geschlossen wird, ist dies ein großer Test und eine Verschwendung der Datenbank. Daher wird das Singleton-Muster häufig in Datenbankoperationsklassen verwendet.

Wenn eine Klasse zur globalen Steuerung bestimmter Konfigurationsinformationen im System benötigt wird, kann diese ebenfalls einfach im Singleton-Modus implementiert werden.

PHP-Singleton-Modus-Implementierung

Das Folgende ist ein Framework für den PHP-Singleton-Modus zur Implementierung von Datenbankbetriebsklassen

<?php
 class Db{
 const DB_HOST=&#39;localhost&#39;;
 const DB_NAME=&#39;&#39;;
 const DB_USER=&#39;&#39;;
 const DB_PWD=&#39;&#39;;
 private $_db;
 //保存实例的私有静态变量
 private static $_instance;
 //构造函数和克隆函数都声明为私有的
 private function __construct(){
  //$this->_db=mysql_connect();
 }
 private function __clone(){
  //实现
 }
 //访问实例的公共静态方法
 public static function getInstance(){
  if(!(self::$_instance instanceof self)){
  self::$_instance=new self();
  }
  //或者
  if(self::$_instance===null){
  self::$_instance=new Db();
  }
  return self::$_instance;
 }
 public function fetchAll(){
  //实现
 }
 public function fetchRow(){
  //实现
 }
 }
 //类外部获取实例的引用
 $db=Db::getInstance();
?>
Nach dem Login kopieren

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas bedeutet Singleton in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage