亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中單例模式

發布時間:2021-03-03 09:29:13 來源:億速云 閱讀:135 作者:清風 欄目:編程語言

這篇文章主要為大家展示了php中單例模式,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“php中單例模式”這篇文章吧。

php有什么用

php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。

1.單例模式的由來

 是對現實生活中一類具有共同特征的事物的抽象,通過類的實例化,產生了許多的對象,但同時也產生了大量資源的消耗(例如在連接數據庫時連接數量的限制,又例如在計算機中打開資源管理器卻具有唯一性),由此也產生了對類的實例化進行了限定的需求,為了保護資源的唯一性,由此產生了單例模式

2.單例模式的定義

定義:單例模式singleton,是一種類的設計只會最多產生一個對象的設計思想。

3.單例模式的實例

   a.創建一個空類 。

<?php
   class Use{
   }
   $a=new Use();//實例化一個對象
?>

b.能夠多次實例化類,是產生多個對象的原因,所以可以通過私有化構造方法

<?php
  class Use{
    private function __construct()
    {
      echo __FUNCTION__."<br>";
    }
   }
?>

c.私有化構造方法使得實例化對象產生的數目為0,由此可以通過在類的內部,通過靜態方法調用構造方法,然后將構造方法返回至外部。

<?php
  class Use{
    private function __construct()
    {
     echo __FUNCTION__."<br>";
    }
    public static function getInstance()
    {
      return new self();
        }
   }
  $s1=Use::getSingleton();
?>

d.通過上述的方法雖然能夠實例化對象,但是同時也將構造方法的使用權限外放出去。如果想要該方法只返回一個對象,就得保證類內部有辦法存著某個產生的對象,第一次產生新的,后面返回舊的。此時需要使用靜態屬性。

<?php
  class Use{
    private static $object = NULL;//初始化為NULL,沒有對象 
    
    private function __construct()
    {
      echo __FUNCTION__."<br>";
    }
    
    public static function getInstance()
    {  
      //判斷類內部的靜態屬性是否存在對象
       if(!(self::$object instanceof self)){   //當前保存的內容不是當前類的對象
       self::$object = new self();
    }
      //返回對象給外部
       return self::$object;
    }
   }
  $s1=Use::getSingleton();
?>

e.此時可以保證,通過調用靜態方法只得到一個對象。但是依舊可以通過克隆,不停的實例化新的對象,所以可以將克隆私有化。

<?php
  class Use{
    private static $object = NULL;//初始化為NULL,沒有對象 
    
    private function __construct()
    {
      echo __FUNCTION__."<br>";
    }
    
    public static function getInstance()
    {  
      //判斷類內部的靜態屬性是否存在對象
       if(!(self::$object instanceof self)){   //當前保存的內容不是當前類的對象
           self::$object = new self();
       }
      //返回對象給外部
       return self::$object;
    }
    
    
    private function __clone(){}   
   }
  $s1=Use::getSingleton();
?>

以上就是關于“php中單例模式”的內容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万荣县| 句容市| 辛集市| 商南县| 富源县| 阿坝县| 古田县| 滦平县| 章丘市| 房产| 济宁市| 集安市| 南雄市| 于田县| 广昌县| 沅江市| 二手房| 安国市| 四子王旗| 邵武市| 泰安市| 淮安市| 郯城县| 金门县| 荃湾区| 剑阁县| 常熟市| 斗六市| 清丰县| 榆树市| 弥勒县| 凤台县| 玉门市| 依兰县| 平山县| 湛江市| 库伦旗| 鹰潭市| 宜州市| 尼勒克县| 绩溪县|