PHP經典設計模式--單例模式 pfinal
阿新 • • 發佈:2018-06-04
error roo err 不能 設計模式 構造函數 serialize 一個 創建對象
<?php class Mysql{ //該屬性用來保存實例 private static $conn; //構造函數為private,防止創建對象 private function __construct(){ $this->conn = mysqli_connect(‘localhost‘,‘root‘,‘‘); } //創建一個用來實例化對象的方法,如果不存在一個這個類的實例屬性,就創建一個,否則就取這個實例屬性。 publicstatic function getInstance(){ if(!(self::$conn instanceof self)){ self::$conn = new self; } return self::$conn; } //防止對象被復制 public function __clone(){ trigger_error(‘Clone is not allowed !‘); }//防止反序列化後創建對象 private function __wakeup(){ trigger_error(‘Unserialized is not allowed !‘); } } //只能這樣取得實例,不能new 和 clone $mysql = Mysql::getInstance(); ?> 單例一般就是像這樣用一個靜態方法取得。
PHP經典設計模式--單例模式 pfinal