国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP設計模式之單例模式原理與實現方法分析

2024-05-05 00:03:22
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 石屏县| 茂名市| 商都县| 左云县| 新竹县| 英德市| 瑞金市| 德昌县| 闻喜县| 巨野县| 罗定市| 保山市| 大英县| 上饶县| 仁化县| 驻马店市| 保靖县| 漯河市| 凉城县| 綦江县| 许昌县| 尼玛县| 嘉善县| 广东省| 邵阳市| 新河县| 林西县| 江永县| 田林县| 上栗县| 安徽省| 吴桥县| 安宁市| 桓台县| 双城市| 岑溪市| 巴青县| 工布江达县| 武汉市| 广德县| 兴山县|