码迷,mamicode.com
首页 > Web开发 > 详细

PHP经典设计模式--单例模式 pfinal

时间:2018-06-04 14:31:46      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:否则   cti   code   nbsp   IV   函数   get   nal   this   

<?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

标签:否则   cti   code   nbsp   IV   函数   get   nal   this   

原文地址:https://www.cnblogs.com/shaoing/p/9132624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!