1. 程式人生 > >單例模式小示例

單例模式小示例

get obj 模式 () else ont utf-8 self 克隆

header("Content-type:text/html;charset=utf-8");
// final修飾類,則Single類不能被子類繼承
final class Single{
// 聲明私有的靜態變量
private static $instance;

// 構造函數
private function __construct(){}

// 獲取單例對象函數
static public function getInstance(){
    if(!is_null(self::$instance)){
        return self::$instance;
    }else{
        return self::$instance = new Single();
    }
}

// 禁止對象的克隆,clone關鍵字使用時會報錯
private function __clone(){
}

}

$obj1 = Single::getInstance();
var_dump($obj1);

$obj2 = Single::getInstance();
var_dump($obj2);

// 這裏會報錯
$obj3 = clone $obj2;
var_dump($obj3);

單例模式小示例