1. 程式人生 > >PHP經典設計模式--單例模式 pfinal

PHP經典設計模式--單例模式 pfinal

error roo err 不能 設計模式 構造函數 serialize 一個 創建對象

<?php
    class Mysql{
        //該屬性用來保存實例
        private static $conn;
        //構造函數為private,防止創建對象
        private function __construct(){
            $this->conn = mysqli_connect(‘localhost‘,‘root‘,‘‘);
        }
        //創建一個用來實例化對象的方法,如果不存在一個這個類的實例屬性,就創建一個,否則就取這個實例屬性。
        public
static 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