單例設計模式通常包含以下三點:
· 一個私有的 構造方法;(確保用戶無法通過創(chuàng)建對象對其進行實例化)
· 一個公有的 靜態(tài)的 方法;(負責對其本身進行實例化)
· 一個私有的 靜態(tài)的 屬性;(用于保存僅有的一個實例化對象)

基本的單例的示例代碼:
class singleExp{
????//用于保存僅有的一個實例化對象
????private static $Instance=NULL;
????//構造方法 使用private 封裝后 則只能在類的內(nèi)部使用new去創(chuàng)建對象
????private function __construct(){};
????//只有通過這個方法才能返回本類中的對象,該方法是靜態(tài)方法 用類名調(diào)用
????public static getInstance(){
???????if(self::$Instance instanceof self){ //如果本類中的$Instance為空,說明還沒有被實例化過
?????????self::$Instance=new singleExp(); //實例化本對象
???????}
???????return self::$Instance;
????}
}
$instance=singleExp::getInstance(); //只能使用靜態(tài)方法getInstance()去獲取singleTon類的對象

????????所謂的單例設計模式就是一個類只能產(chǎn)生/創(chuàng)建唯一一個對象。
????????要編寫單態(tài)設計模式,就必須讓一個類只能實例化一個對象,而要想讓一個類只能實例化一個對象,就要先讓一個類不能實例化對象。

如果需要多次用到單例可如下所示
class singleExp{
????//用于保存僅有的一個實例化對象
????private static $Instance=NULL;
????//構造方法 使用private 封裝后 則只能在類的內(nèi)部使用new去創(chuàng)建對象
????private function __construct(){};
????//只有通過這個方法才能返回本類中的對象,該方法是靜態(tài)方法 用類名調(diào)用
????public static getInstance(){
????????$class = get_called_class();
???????if(self::$Instance instanceof self){ //如果本類中的$Instance為空,說明還沒有被實例化過
?????????self::$Instance[$class]=new singleExp(); //實例化本對象
???????}
???????return self::$Instance[$class];
????}
}
$instance=singleExp::getInstance(); //只能使用靜態(tài)方法getInstance()去獲取singleTon類的對象
????????加強版的單例用法示例

????????圖片與文章無關,在閱讀技術文檔的時候欣賞一下美女也是一個不錯的選擇,希望可以對你有幫助,如果有錯誤的地方歡迎指正。