91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中如何實現單例模式

發布時間:2021-06-03 14:17:32 來源:億速云 閱讀:165 作者:小新 欄目:開發技術

小編給大家分享一下PHP中如何實現單例模式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、什么是單例模式

作為對象的創建模式,單例模式確保某一個類只有一個實例,并且對外提供這個全局實例的訪問入口。它不會創建實例副本,而是會向單例類內部存儲的實例返回一個引用。

二、PHP單例模式三要素

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

2. 構造函數和克隆函數必須聲明為私有的,防止外部程序創建或復制實例副本。

3. 必須提供一個訪問這個實例的公共靜態方法,從而返回唯一實例的一個引用。

三、為什么使用單例模式

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

四、單例模式示例

這里以數據庫操作為例

<?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中如何實現單例模式”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

平顶山市| 大竹县| 黄骅市| 上饶市| 庆安县| 益阳市| 普洱| 海兴县| 乐清市| 涟源市| 会东县| 大方县| 宜宾市| 石棉县| 余干县| 金山区| 锡林浩特市| 合川市| 东乡县| 洪洞县| 美姑县| 木兰县| 旬阳县| 大田县| 建水县| 迁西县| 治县。| 凤翔县| 航空| 达拉特旗| 安化县| 旬邑县| 长子县| 滨海县| 华容县| 宜良县| 元谋县| 吴堡县| 三亚市| 武清区| 桃园市|