Heim >Backend-Entwicklung >PHP-Problem >Was bedeutet Singleton in PHP?
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.
Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 7.1, Dell G3-Computer
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-MustersDas 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-ModusIn 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-ImplementierungDas Folgende ist ein Framework für den PHP-Singleton-Modus zur Implementierung von Datenbankbetriebsklassen
<?php class Db{ const DB_HOST='localhost'; const DB_NAME=''; const DB_USER=''; const DB_PWD=''; 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(); ?>
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!