PHP單例模式 構造方法
阿新 • • 發佈:2019-01-30
對於單例模式,首先說一下好處:
單例模式通俗的來說就是在PHP的類例項化中,他的例項化物件是唯一的。
使用單例模式首先需要滿足以下3點:
1. 它們必須擁有一個建構函式,並且必須被標記為private
2. 它們擁有一個儲存類的例項的靜態成員變數
3. 它們擁有一個訪問這個例項的公共的靜態方法
例項:
<?php /** * 單例模式 */ class Demo { // 1.靜態私有屬性,儲存當前類的例項 private static $instance = null; // 2.構造方法私有化,禁止new例項 private function __construct() { # code... } // 3.克隆方法私有化,禁止外部克隆 private function __clone() { // TODO:Implement __clone() methed. } // 4.生成當前類的唯一例項 public static function getInstance() { // 首先進行判斷,如果不是當前類的例項,那麼例項化當前類建立新的例項 if(!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } } $db = Demo::getInstance(); /*$dc = new Demo();*/ var_dump($db); ?>
單例類不能再其它類中直接例項化,只能被其自身例項化。它不會建立例項副本,而是會向單例類內部儲存的例項返回一個引用。