欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php設計模式之單例模式使用示例

 更新時間:2014年01月20日 15:56:33   作者:  
單例模式也就是只能實例化一次,也就代表在實例化時不可能使用new關鍵字,下面是使用示例,大家參考使用吧

以下為單例模式代碼:

復制代碼 代碼如下:

<?php
class EasyFramework_Easy_Mysql{
    protected static $_instance = null;
    private function __construct(){

    }
    public static function getInstance(){
        if (self::$_instance === null){
            self::$_instance = new self();
        }
        return self::$_instance;
    }

    protected function __clone(){

    }

}

$x = EasyFramework_Easy_Mysql::getInstance();

var_dump($x);


?>


/*
 * 1.第一步:
 * 既然是單例,也就是只能實例化一次,也就代表在實例化時
 * 不可能使用new關鍵字?。。?!
 * 在使用new關鍵字時,類中的構造函數(shù)將自動調用。
 * 但是,如果我們將構造函數(shù)的訪問控制符設置為protected或private
 * 那么就不可能直接使用new關鍵字了?。?!
 * 第二步:
 * 無論protected/private修飾的屬性或方法,請問在當前類的
 * 內部是否可以訪問?---> 可以
 * 第三步:
 * 現(xiàn)在我們根本沒有辦法得到對象(因為你不能使用new關鍵字了),
 * 第四步:靜態(tài)成員(包括屬性或方法)在訪問時,只能通過
 * 類名稱::屬性()
 * 類名稱::方法()
 * 第五步:如果我現(xiàn)在存在一個靜態(tài)方法--> getInstance()
 * 那么在調用時就應寫成
 * $object = EasyFramework_Easy_Mysql::getInstance()
 * 如果,getInstance()方法可以得到唯一的一個對象
 * 也就代表是所謂的單例模式了?。?!
 * 第六步,怎么讓getInstace()只得到一個對象呢?
 * 既然要得到對象,那么肯定是:
 * $variabl = new ????();
 * 我們又知道靜態(tài)屬性的值是可以所有的對象來繼承的?。。?BR> * 靜態(tài)成員是屬于類的,而非對象的!
 * 所以:
 * 第七步:聲明一個靜態(tài)的屬性,用其存儲實例化的對象
 * protectd static $_instance
 *
 * 并且初始值為null
 * 那么我在調用getInstance()方法時,只需要判斷其值是否為空即可\
 *
 * public static function getInstance(){
 *     if(self::_instance === null){
 *      self::_instance = new self();
 *  }
 *  return self::_instance;
 * }
 * 在實例時,一定是這樣寫:
 * $x = EasyFramework_Easy_Mysql::getInstance();
 * 在第一時調用時,類的$_instance這個靜態(tài)屬性值為null,
 * 那么也就代表,getInstance()方法的判斷條件為真了,
 * 也就意味著
 * self::$_instance這個成員有了值了?。?!
 * 并且還返回這個值
 * $y = EasyFramework_Easy_Mysql::getInstance();
 * 在第二次或第N次調用時,self::$_instance已經有了值了
 * 也就代表getInstance()方法的條件為假了?。?!
 * 也就代表其中的程序代表不可能執(zhí)行了?。?!
 * 也就代表將直接返回以前的值了!??!
 *
 *
 *
 * */

相關文章

  • ThinkPHP框架整合微信支付之Native 掃碼支付模式二圖文詳解

    ThinkPHP框架整合微信支付之Native 掃碼支付模式二圖文詳解

    這篇文章主要介紹了ThinkPHP框架整合微信支付之Native 掃碼支付模式,結合圖文形式詳細分析了thinkPHP整合微信掃碼支付功能的具體步驟與相關操作技巧,以及與模式一的區(qū)別,需要的朋友可以參考下
    2019-04-04
  • Laravel中的Sessionid處理機制詳解

    Laravel中的Sessionid處理機制詳解

    這篇文章主要給大家介紹了關于Laravel中Sessionid處理機制的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-09-09
  • php之XML轉數(shù)組函數(shù)的詳解

    php之XML轉數(shù)組函數(shù)的詳解

    本篇文章是對php中的XML轉數(shù)組函數(shù)進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結

    PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結

    這篇文章主要介紹了PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結,本文重點在于對這3種方法的混合使用講解上,需要的朋友可以參考下
    2014-11-11
  • PHP變量賦值、代入給JavaScript中的變量

    PHP變量賦值、代入給JavaScript中的變量

    這篇文章主要介紹了PHP變量賦值、代入給JavaScript中的變量,這也是在WEB開發(fā)中非常有用的功能技巧,使用的頻率也非常高,需要的朋友可以參考下
    2015-06-06
  • php結合ajax實現(xiàn)手機發(fā)紅包的案例

    php結合ajax實現(xiàn)手機發(fā)紅包的案例

    發(fā)紅包功能,當我們輸入紅包數(shù)量和總金額后,PHP會根據(jù)這兩個值進行隨機分配每個金額,保證每個人都能領取到一個紅包,每個紅包金額不等,就是要求紅包金額要有差異,所有紅包金額總額應該等于總金額。
    2016-10-10
  • 微信支付開發(fā)發(fā)貨通知實例

    微信支付開發(fā)發(fā)貨通知實例

    本篇文章主要介紹微信支付中發(fā)貨通知功能的實現(xiàn),并且提供實例代碼做參考,希望能幫到開發(fā)微信支付的小伙伴
    2016-07-07
  • Windows下php+mysql5.7配置教程

    Windows下php+mysql5.7配置教程

    這篇文章主要為大家詳細介紹了Windows下php+mysql5.7配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • linux系統(tǒng)下php安裝mbstring擴展的二種方法

    linux系統(tǒng)下php安裝mbstring擴展的二種方法

    這篇文章主要介紹了linux系統(tǒng)環(huán)境下,php安裝mbstring擴展的二種方法,大家參考使用吧
    2014-01-01
  • php compact 通過變量創(chuàng)建數(shù)組

    php compact 通過變量創(chuàng)建數(shù)組

    php compact函數(shù)用于創(chuàng)建數(shù)組,該函數(shù)創(chuàng)建數(shù)組比較特殊,compact函數(shù)參數(shù)將接受一個或多個變量,然后將變量的名稱作為該創(chuàng)建數(shù)組的索引,變量值作為該創(chuàng)建數(shù)組的值,然后返回創(chuàng)建完成的數(shù)組。本文章向大家講解compact函數(shù)的基本語法及使用實例。需要的碼農可以參考一下。
    2016-11-11

最新評論