首頁 後端開發 php教程 PHP單例模式使用案例詳解

PHP單例模式使用案例詳解

May 16, 2018 pm 02:11 PM
php 案例 詳解

這次帶給大家PHP單例模式使用案例詳解,PHP單例模式使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

本文實例敘述了PHP設計模式之單例模式原理與實作方法。分享給大家供大家參考,具體如下:

一、什麼是單例模式

作為物件的建立模式,單例模式確保某一個類別只有一個實例,並且對外提供這個全域實例的存取入口。它不會建立實例副本,而是會向單例類別內部儲存的實例傳回一個參考。

二、PHP單例模式三要素

1. 需要一個保存類別的唯一實例的靜態成員變數。

2. 建構函式和複製函式必須宣告為私有的,防止外部程式建立或複製實例副本。

3. 必須提供一個存取這個實例的公共靜態方法,從而傳回唯一實例的一個參考。

三、為什麼使用單例模式

使用單例模式的好處很大,以資料庫操作為例。若不採用單例模式,當程式中出現大量資料庫操作時,每次都要執行new操作,每次都會消耗大量的記憶體資源和系統資源,而且每次開啟和關閉資料庫連線都是對資料庫的一種極大考驗和浪費。使用了單例模式,只需要實例化一次,不需要每次都執行new操作,大幅降低了資源的耗費。

四、單例模式範例

這裡以資料庫操作為例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

<?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中文網其它相關文章!

推薦閱讀:

PHP產生二維碼海報案例分析

#PHPExcel修改步驟詳解

以上是PHP單例模式使用案例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

CakePHP 建立驗證器 CakePHP 建立驗證器 Sep 10, 2024 pm 05:26 PM

CakePHP 建立驗證器

See all articles