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

Posted William Shaw技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
?>
单例一般就是像这样用一个静态方法取得。

 

以上是关于PHP经典设计模式--单例模式 pfinal的主要内容,如果未能解决你的问题,请参考以下文章

详解 PHP 中的三大经典模式

理解php单例模式

理解php单例模式

PHP经典设计模式

经典算法题: 实现Singleton单例模式

Singleton单例模式的经典实现