1. 程式人生 > >PHP設計模式:單例模式

PHP設計模式:單例模式

php singleton 單例模式

應用場景:

  1. 在一次http請求中,多個地方使用到了數據庫連接,使用單例可以只需要創建一個連接。

  2. 一個龐大的類被多次實例化的時候,會浪費巨大的內存空間。使用單例模式可以使多個對象共享內存中存在類的靜態空間。


代碼示例:

<?php

    //final防止類被繼承
    final class DBHelper{
        //初始化實例 含義:$install = new DBHelper()...
        private static $instance=null;
        
        //構造器私有,防止類外部實例化
        private function __construct(){
            //連接數據庫操作
        }
        
        //獲取實例
        public static function getInstance(){
            if(!(self::$instance instanceof self)){
                self::$instance=new self;
            }
            
            return self::$instance;
        }
        
        //防止實例被克隆
        private function __clone(){
        }
        
    }    
        
    
?>

驗證:

$conn1=DBHelper::getInstance();
$conn2=DBHelper::getInstance();

echo $conn1 === $conn2;

PHP設計模式:單例模式