Home  >  Article  >  Backend Development  >  What does singleton mean in php

What does singleton mean in php

WBOY
WBOYOriginal
2022-05-06 10:57:492035browse

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.

What does singleton mean in php

The operating environment of this article: Windows 10 system, PHP version 7.1, Dell G3 computer

What is the meaning of singleton in php

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=&#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();
?>

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn