最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php設計模式之單例模式代碼

 更新時間:2016年06月11日 09:50:21   作者:dongxiaojie  
這篇文章主要為大家詳細介紹了php設計模式之單例模式的實現(xiàn)代碼,具有一定的參考價值,感興趣的朋友可以參考一下

php設計模式之單例模式的例子,供大家參考,具體內(nèi)容如下

<?php
  /**
   * php設計模式 單例模式
   */
  class Fruit{
    private static $instanceMap = array();

    //protected getter for singleton instances
    protected static function getSingleton($className){
      //保證單例模式 并且不能從控制器實例化和克隆
      if (!isset(self::$instanceMap[$className])) {
        $object = new $className;
        //Make sure this object inherit from Singleton
        if ($object instanceof Fruit) {
          self::$instanceMap[$className] = $object;
          var_dump($object);
        } else {
          throw SingletonException("Class '$className' do not inherit from Singleton!");
        }
      }
      return self::$instanceMap[$className];
    }

    //protected constructor to prevent outside instantiation
    protected function __construct(){}

    //denie cloning of singleton objects
    public final function __clone(){
      trigger_error('It is impossible to clone singleton', E_USER_ERROR);
    }
  }

  class Apple extends Fruit{
    protected $rndId;

    public function __construct(){
      $this->rndId = rand();
    }

    public function whatAmI(){
      echo 'I am a Apple(' . $this->rndId . ')<br />';
    }

    public static function getInstance(){
      //echo get_class();
      return Fruit::getSingleton(get_class());
    }
  }

  class GreenApple extends Apple{
    public function whatAmI(){
      echo 'I am a GreenApple(' . $this->rndId . ')<br />';
    }

    public static function getInstance(){
      return Fruit::getSingleton(get_class());
    }
  }

  $apple1 = Apple::getInstance();
  //var_dump($apple1);
  $apple2 = GreenApple::getInstance();
  $apple1->whatAmI();// should echo 'I am a Apple(some number)
  $apple2->whatAmI();// should echo 'I am a GreenApple(some number)
  $apple1 = Apple::getInstance();
  $apple2 = GreenApple::getInstance();
  //保證單例模式
  $apple1->whatAmI();// should echo 'I am a Apple(same number as above)
  $apple2->whatAmI();// should echo 'I am a GreenApple(same number as above)
  // $a = clone $apple1;// this should fail
  // $b = clone $apple2;// this should fail

以上就是本文的全部內(nèi)容,希望對大家學習php程序設計有所幫助。

相關文章

  • PHP樹形結(jié)構(gòu)tree類用法示例

    PHP樹形結(jié)構(gòu)tree類用法示例

    這篇文章主要介紹了PHP樹形結(jié)構(gòu)tree類用法,結(jié)合實例形式分析了php無限分類樹tree.class.php的定義及使用相關操作技巧,需要的朋友可以參考下
    2019-02-02
  • php遞歸如何獲取無限上級ID

    php遞歸如何獲取無限上級ID

    這篇文章主要介紹了php遞歸如何獲取無限上級ID,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • php常用字符串查找函數(shù)strstr()與strpos()實例分析

    php常用字符串查找函數(shù)strstr()與strpos()實例分析

    這篇文章主要介紹了php常用字符串查找函數(shù)strstr()與strpos(),結(jié)合具體實例形式分析了php字符串查找函數(shù)strstr()與strpos()的具體功能、用法、區(qū)別及相關操作注意事項,需要的朋友可以參考下
    2019-06-06
  • php從字符串創(chuàng)建函數(shù)的方法

    php從字符串創(chuàng)建函數(shù)的方法

    這篇文章主要介紹了php從字符串創(chuàng)建函數(shù)的方法,涉及php中字符串與create_function函數(shù)的使用技巧,需要的朋友可以參考下
    2015-03-03
  • php實現(xiàn)簡單洗牌算法

    php實現(xiàn)簡單洗牌算法

    本篇文章是對php實現(xiàn)簡單洗牌算法的程序代碼進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php商品對比功能代碼分享

    php商品對比功能代碼分享

    前段時間,朋友叫我?guī)退麑憘€商品對比功能,當時正好在逛綠森數(shù)碼商城,點開商品列表,看到有商品對比功能,然后直接下載了他的JS滾動文件和抽出了對比框的樣式,然后自己完善了下。
    2015-09-09
  • php對gzip文件或者字符串解壓實例參考

    php對gzip文件或者字符串解壓實例參考

    要采集一個網(wǎng)站,目標站采用了gzip壓縮傳輸網(wǎng)頁,本來應該只要發(fā)送一個http頭 Accept-Encoding: identity或者干脆不發(fā)送這個頭等,就可以使目標站返回沒有經(jīng)過gzip壓縮的頁面了,不過很不幸,目標站無視客戶端的請求,仍然返回gzip數(shù)據(jù),造成亂碼。
    2008-07-07
  • Linux下CoreSeek及PHP擴展模塊的安裝

    Linux下CoreSeek及PHP擴展模塊的安裝

    前提條件是系統(tǒng)己安裝完成apache mysql php的WEB服務。我是以yum來安裝的。如果你沒有安裝過請按照下面給出的鏈接先完成基本的LAMP環(huán)境的安裝
    2012-09-09
  • php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實現(xiàn)

    php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實現(xiàn)

    本文為大家介紹下php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實現(xiàn),感興趣的朋友不要錯過
    2013-12-12
  • 詳解PHP的Laravel框架中Eloquent對象關系映射使用

    詳解PHP的Laravel框架中Eloquent對象關系映射使用

    這篇文章主要介紹了PHP的Laravel框架中Eloquent對象關系映射使用,重點講述了Eloquent的數(shù)據(jù)模型間關系,需要的朋友可以參考下
    2016-02-02

最新評論

眉山市| 哈巴河县| 黎平县| 东阳市| 仁寿县| 灵丘县| 增城市| 旅游| 武安市| 大荔县| 保定市| 团风县| 龙陵县| 鸡西市| 孟村| 拜泉县| 涞源县| 久治县| 习水县| 冷水江市| 扎囊县| 连城县| 神池县| 安塞县| 湘西| 黑河市| 冕宁县| 繁昌县| 界首市| 太康县| 湄潭县| 普兰县| 宁国市| 闸北区| 辛集市| 林州市| 海林市| 东光县| 凤庆县| 江门市| 高阳县|