Home >Backend Development >PHP Tutorial >Detailed explanation of PHP singleton pattern use cases

Detailed explanation of PHP singleton pattern use cases

php中世界最好的语言
php中世界最好的语言Original
2018-05-16 14:11:521734browse

This time I will bring you a detailed explanation of the use cases of PHP singleton mode. What are the precautions when using PHP singleton mode. The following is a practical case, let's take a look.

The examples in this article describe the principles and implementation methods of the singleton pattern in 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 is a 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[&#39;testcol&#39;] . &#39;<br />&#39;;
    }
    mysqli_free_result($res);
  }
}
$mysqli = Db::getInstance();
$mysqli->getinfo();
?>

I believe you have mastered the method after reading the case in this article, more Please pay attention to other related articles on the php Chinese website!

Recommended reading:

PHP generated QR code poster case analysis

Detailed explanation of PHPExcel modification steps

The above is the detailed content of Detailed explanation of PHP singleton pattern use cases. 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