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

php設(shè)計(jì)模式之單例模式代碼

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

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

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

    //protected getter for singleton instances
    protected static function getSingleton($className){
      //保證單例模式 并且不能從控制器實(shí)例化和克隆
      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)容,希望對大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    php商品對比功能代碼分享

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

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

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

    Linux下CoreSeek及PHP擴(kuò)展模塊的安裝

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

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

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

    詳解PHP的Laravel框架中Eloquent對象關(guān)系映射使用

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

最新評論

远安县| 宁都县| 德惠市| 瑞金市| 海兴县| 林州市| 康马县| 醴陵市| 大名县| 黎川县| 渝中区| 分宜县| 谷城县| 莱西市| 浦城县| 宜阳县| 绩溪县| 西昌市| 庆云县| 新竹市| 巧家县| 黔江区| 湖州市| 满城县| 崇信县| 阜康市| 偃师市| 和平区| 乐至县| 界首市| 普兰县| 郓城县| 银川市| 兴义市| 武乡县| 高州市| 青河县| 镇远县| 桓仁| 峡江县| 会东县|