中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

PHP中的單例模式是什么

發布時間:2021-08-11 19:47:55 來源:億速云 閱讀:108 作者:chen 欄目:編程語言

這篇文章主要介紹“PHP中的單例模式是什么”,在日常操作中,相信很多人在PHP中的單例模式是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP中的單例模式是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

  單例模式

  定義:簡單的說,整個應用一次訪問流程中只有一個實例對象的設計模式。

  我對單例模式的理解就是可以減少new的操作,因為new操作的時候會消耗內存,如果進行大量的new操作,就會消耗大量的內存。

  例如:

  class abc {

  }

  $a = new abc;

  $b = new abc;

  $c = new abc;

  $d = new abc;

  echo "內存初始: ".memory_get_usage()."B\n";

  echo '< pre>';

  var_dump($a);

  echo '< /pre>';

  echo "內存使用: ".memory_get_usage()."B\n";

  echo '< pre>';var_dump($b);

  echo '< /pre>';

  echo "內存使用: ".memory_get_usage()."B\n";

  echo '< pre>';var_dump($c);

  echo '< /pre>';

  echo "內存使用: ".memory_get_usage()."B\n";

  echo '< pre>';var_dump($d);

  echo '< /pre>';

  echo "內存使用: ".memory_get_usage()."B\n";

  echo "峰值: ".memory_get_peak_usage()."B\n"

  輸出結果:

  內存初始:126352B

  object(abc)#1 (0){

  }

  內存使用:126392B

  object(abc)#2 (0){

  }

  內存使用:126440B

  object(abc)#3 (0){

  }

  內存使用:126488B

  object(abc)#4 (0){

  }

  內存使用:126536B 峰值:127040B

  這里每一次new 操作就會增加內存的占用。而使用單例模式則不會造成這種情況。

  單例模式的要點

  1.某個類只能有一個實例。

  2.必須自行創建這個實例。

  3.必須自行向整個系統提供這個實例。

  下面是創建一個單例類的示例:

  /** * @purpose: 創建一個單例類 * Class Single */

  class Single {

  /** * @var Object 保存類實例的靜態成員變量 */

  private static $_instance;

  /** * Single constructor. 私有的構造方法 */

  private function __construct(){

  echo 'This is a Constructed method;'; }

  /** * @purpose: 創建私有__clone方法防止對象被復制克隆 */

  private function __clone(){ }

  /** * @return Single|Object 單例方法,用于訪問實例的公共的靜態方法 */

  public static function getInstance(){

  if(!(self::$_instance instanceof self)){

  self::$_instance = new self; }

  return self::$_instance; }

  }

  現在我們進行實例化輸出:

  This is a Constructed method;

  內存初始:129456B

  object(abc)#1 (0){

  }

  內存初始:129504B

  object(abc)#1 (0){

  }

  內存初始:129504B

  object(abc)#1 (0){

  }

  內存初始:129504B

  object(abc)#1 (0){

  }

  內存初始:129504B

  這里可以看出就算多次實例化內存也沒有進行增長;

  單例模式的用處

  1.單例模式可以應用在數據庫的操作類上。

  2.單例模式可應用在網站的計數器上。

  3.應用程序的日志應用,一般都使用單例模式實現,這一般是由于共享的日志文件一直處于打開狀態,因為只能有一個實例去操作,否則內容不好追加。

  4.Web應用的配置對象的讀取,一般也應用單例模式,這個是由于配置文件是共享的資源。

到此,關于“PHP中的單例模式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

php
AI

盘山县| 青河县| 凤庆县| 彭水| 丰原市| 揭西县| 光泽县| 玉屏| 海阳市| 尉犁县| 鹤岗市| 托克逊县| 突泉县| 泾源县| 满洲里市| 资阳市| 乌恰县| 乌拉特中旗| 石棉县| 桃园县| 鄂尔多斯市| 兴国县| 蒙山县| 淅川县| 武义县| 伊春市| 昆山市| 扎兰屯市| 安康市| 赫章县| 临安市| 奎屯市| 都江堰市| 长乐市| 巍山| 靖西县| 和平区| 华宁县| 吉林省| 全州县| 石渠县|