php單例模式的例項

2021-10-25 18:58:32 字數 1610 閱讀 7458

class config1 {}

class config

//轉殖方法私有化:禁止從外部轉殖物件

private function __clone(){}

//因為用靜態屬性返回類例項,而只能在靜態方法使用靜態屬性

//所以必須建立乙個靜態方法來生成當前類的唯一例項

public static function getinstance()

//如果已經有了當前類例項,就直接返回,不要重複建立類例項

return self::$instance;

}//設定配置項

public function set($index, $value)

//讀取配置項

public function get($index)

}$obj1 = new config1;

$obj2 = new config1;

var_dump($obj1,$obj2);

echo '';

//例項化config類

$obj1 = config::getinstance();

$obj2 = config::getinstance();

var_dump($obj1,$obj2);

$obj1->set('host','localhost');

echo $obj1->get('host');

* 單例模式:乙個類僅允許建立乙個例項

一、什麼是單例模式作為物件的建立模式,單例模式確保某乙個類只有乙個例項,並且對外提供這個全域性例項的訪問入口。它不會建立例項副本,而是會向單例類內部儲存的例項返回乙個引用。二、php單例模式三要素1. 需要乙個儲存類的唯一例項的靜態成員變數。

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

3. 必須提供乙個訪問這個例項的公共靜態方法,從而返回唯一例項的乙個引用。三、為什麼使用單例模式使用單例模式的好處很大,以資料庫操作為例。若不採用單例模式,當程式**現大量資料庫操作時,每次都要執行new操作,

每次都會消耗大量的記憶體資源和系統資源,而且每次開啟和關閉資料庫連線都是對資料庫的一種極大考驗和浪費。使用了單例模式,只需要例項化一次,不需要每次都執行new操作,極大降低了資源的耗費。四、單例模式示例這裡以資料庫操作為例

<?php 

/*** 單例模式

**/class db

//私有化轉殖函式,防止外界轉殖物件

private function __clone()

//單例訪問統一入口

public static function getinstance()

return self::$instance;

} //資料庫查詢操作

public function getinfo()

mysqli_free_result($res);

}}$mysqli = db::getinstance();

$mysqli->getinfo();

?>

PHP中」單例模式「例項講解

假設我們需要寫乙個類用來運算元據庫,並同時滿足以下要求 sqlhelper類只能有乙個例項 不能多 sqlhelper類必須能夠自行建立這個例項 必須自行向整個系統提供這個例項,換句話說 多個物件共享一塊記憶體區域,比如,物件a設定了某些屬性值,則物件b,c也可以訪問這些屬性值 結尾的例子很好的說明...

單例模式 例項

public class readsourceutil 在類的內部定義乙個自身型別的成員 private static private static readsourceutil me instance null 將構造方法私有化 private readsourceutil public stat...

php設計模式之單例模式例項分析

單例模式 職責模式 簡單的說,乙個物件 在學習設計模式之前,需要比較了程式設計客棧解物件導向思想 只負責乙個特定的任務 單例類 1 建構函式需要標記為private 訪問控制 防止外部 使用new操作符建立物件 單例類不能在其他類中例項化,只能被其自身例項化 2 擁有乙個儲存類的例項的靜態成員變數 ...