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['testcol'] . '<br />'; } mysqli_free_result($res); } } $mysqli = Db::getInstance(); $mysqli->getinfo(); ?>
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!