PHP实现单例模式

<?php
/**
* 单例模式实现
*/
class Singleton
{
    //静态变量保存全局实例
    private static $instance = null;

    private function __clone()
    {
        //私有构造函数,防止外界实例化对象
    }

    private function __construct()
    {
        //私有克隆函数,防止外界克隆对象
    }

    //静态方法,单例统一访问入口
    public static function getInstance()
    {
        if (self::$instance instanceof Singleton) {
            echo "return exist instance\n";
            return self::$instance;
        }
        self::$instance = new Singleton();
        echo "return new instance\n";
        return self::$instance;
    }
}

$a = Singleton::getInstance();//output: return new instance
$a = Singleton::getInstance();//output: return exist instance

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python

表的数据类型

一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob....

22470
来自专栏乐沙弥的世界

PL/SQL 集合的方法

    PL/SQL中提供了常用的三种集合联合数组、嵌套表、变长数组,而对于这几个集合类型中元素的操作,PL/SQL提供了相应的函数或过程来操 纵数组中的元素...

9030
来自专栏不想当开发的产品不是好测试

SQL语句小tips(持续更新)

expr1 的值为 TRUE,则返回值为 expr2  expr1 的值为FALSE,则返回值为 expr3

11020
来自专栏测试开发架构之路

总结了一些指针易出错的常见问题(五)

指针与链表及其操作 //结构体定义 typedef struct _person{ char* firstname; char* lastna...

29150
来自专栏JavaQ

温故而知新-MySQL数据类型

选择数据类型的原则 MySQL支持多种数据类型,选择合适的数据类型存储数据对MySQL存储引擎来说至关重要,下面的一些原则可以在选择数据类型的时候做出更合适的选...

32070
来自专栏乐沙弥的世界

MySQL数据类型 -- 数值型

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。 https://blog.csdn.net/robinson_0612/art...

16430
来自专栏xiaoxi666的专栏

Trie树/字典树题目(2017今日头条笔试题:异或)

关于trie数的其他应用,可参见http://www.cnblogs.com/dlutxm/archive/2011/10/26/2225660.html,感觉...

25630
来自专栏cloudskyme

设计模式(4)-序列生成器之单例模式

场景:序列生成器 系统中统一的序列生成程序,整个系统统一一套!那么就用单例模式吧! 首先看看单例模式 1)类持有一个自己的实例,而且还是个静态实例。 2)类的构...

35160
来自专栏jeremy的技术点滴

实例变量的懒初始化

34640
来自专栏C/C++基础

设计模式(7)——单例模式(Singleton Pattern,创建型)

使用设计模式可以提高代码的可复用性、可扩充性和可维护性。单例模式(Singleton Pattern),确保一个类只有一个实例,并提供一个全局访问点。

10520

扫码关注云+社区

领取腾讯云代金券