Home >Backend Development >PHP Problem >What does singleton mean in php
In PHP, a singleton means that a class has and has only one instance. It refers to a design pattern in which a certain class in the entire application has only one object instance; self-instantiation in the singleton pattern will affect the entire application. The system provides this instance globally and does not create a copy of the instance. Instead, it returns a reference to the instance stored inside the singleton class.
The operating environment of this article: Windows 10 system, PHP version 7.1, Dell G3 computer
The singleton pattern refers to a design pattern in which a certain class has only one object instance in the entire application. Specifically, as a method of object creation, the singleton pattern ensures that a class has only one instance, instantiates itself and provides this instance globally to the entire system. It does not create a copy of the instance, but returns a reference to the instance stored inside the singleton class.
A class has one and only one instance, and it is instantiated and provided to the entire program for use. This can be understood as ensuring that this class has one and only one instance during the entire program running, and provides one to the outside world. Access its global access point.
Characteristics of singleton mode
The main feature of singleton mode is "three private and one public":
Requires a unique instance of the saved class Private static member variables
The constructor must be declared private to prevent an external program from newing an object and thus losing the meaning of a singleton
The clone function must be declared private to prevent the object from being cloned
Must provide a public static method (usually named getInstance) to access this instance, thereby returning a reference to the unique instance.
Reasons and scenarios for using the singleton mode
In most applications of PHP, there will be a large number of database operations. If the singleton mode is not used, then every time New operation is required, but each new will consume a lot of system resources and memory resources, and each time the database is opened and closed, it is a great test and waste of the database. Therefore, the singleton pattern is often used in database operation classes.
Similarly, if a class is needed in the system to globally control certain configuration information, it can be easily implemented using the singleton mode.
PHP singleton mode implementation
The following is a framework for PHP singleton mode to implement database operation classes
<?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(); ?>
Recommended study: " PHP video tutorial》
The above is the detailed content of What does singleton mean in php. For more information, please follow other related articles on the PHP Chinese website!