zoukankan      html  css  js  c++  java
  • PHP经典设计模式--单例模式 pfinal

    <?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();
    ?>
    单例一般就是像这样用一个静态方法取得。
  • 相关阅读:
    git常用命令及多人协同开发及遇到的问题
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    Codeforces Round #604 (Div. 2) E. Beautiful Mirrors
  • 原文地址:https://www.cnblogs.com/shaoing/p/9132624.html
Copyright © 2011-2022 走看看