This article mainly introduces the principles and implementation methods of the singleton pattern in PHP design patterns. It briefly introduces the concept, function, and composition of the singleton pattern, and analyzes the related operating techniques of defining and using the singleton pattern in PHP in the form of examples. , Friends in need can refer to
The examples in this article describe the principles and implementation methods of the singleton pattern of PHP design patterns. Share it with everyone for your reference, the details are as follows:
1. What is the singleton mode
As an object creation mode, the singleton mode ensures that there is only one class of a certain class instance, and provide external access to this global instance. It does not create a copy of the instance, but returns a reference to the instance stored inside the singleton class.
2. Three elements of PHP singleton mode
1. A static member variable is required to save the only instance of the class.
2. Constructors and clone functions must be declared private to prevent external programs from creating or copying instance copies.
3. A public static method must be provided to access this instance, thereby returning a reference to the unique instance.
3. Why use singleton mode
The benefits of using singleton mode are great, take database operation as an example. If the singleton mode is not adopted, when a large number of database operations occur in the program, new operations must be performed every time, which consumes a large amount of memory resources and system resources, and every time a database connection is opened and closed, it is a violation of the database. A great test and waste. Using the singleton mode, it only needs to be instantiated once, and there is no need to perform new operations every time, which greatly reduces resource consumption.
4. Singleton mode example
Here we take database operation as an example
<?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(); ?>
PHP Design Pattern Prototype Design Pattern Principles and Usage Analysis PHP Skills
laravel Implementation method of sending verification code via SMS php example
##PHP receiveMail implements the function of receiving emails php example
The above is the detailed content of PHP design pattern singleton pattern principle and implementation method analysis php skills. For more information, please follow other related articles on the PHP Chinese website!