php 单例模式的例子

作者: wxfeng 分类: php 发布时间: 2019-09-25 11:31
<?php
//单例
class Uni{
    //创建静态私有的变量保存该类对象
    static private $instance;
    //参数
    private $config;
    //防止直接创建对象
    private function __construct($config){
        $this -> config = $config;
        echo "我被实例化了";
    }
    //防止克隆对象
    private function __clone(){

    }
    static public function getInstance($config){
        //判断$instance是否是Uni的对象
        //没有则创建
        if (!self::$instance instanceof Uni) {
            self::$instance = new Uni($config);
        }
        return self::$instance;
    }
    public function getName(){
        echo $this -> config;
    }
}
$db1 = Uni::getInstance(33);
$db1 -> getName();

$db2 = Uni::getInstance(5252);
$db2 -> getName();

//运行结果:我被实例化了3333

1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;

2、拥有一个保存类的实例的静态成员变量

3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注