当前位置:Gxlcms > PHP教程 > PHP单例模式demo详解

PHP单例模式demo详解

时间:2021-07-01 10:21:17 帮助过:43人阅读

本文主要和大家分享PHP设计模式之单例模式demo,希望能帮助大家更好的学习PHP单例模式。

<?php/** 
* 设计模式之单例模式
 * $_instance必须声明为静态的私有变量
 * 构造函数和析构函数必须声明为私有,防止外部程序new
 * 类从而失去单例模式的意义
 * getInstance()方法必须设置为公有的,必须调用此方法
 * 以返回实例的一个引用
 * ::操作符只能访问静态变量和静态函数
 * new对象都会消耗内存
 * 使用场景:最常用的地方是数据库连接。
 * 使用单例模式生成一个对象后,
 * 该对象可以被其它众多对象所使用。
 */class Example{//保存例实例在此属性中
    private static $_instance;//构造函数声明为private,防止直接创建对象
    public function __construct()
    {
        //初始的方法
    }//单例方法
    public static function getInstance()
    {
        if(!isset(self::$_instance))
        {            $c=__CLASS__;            self::$_instance=new $c;
        }        return self::$_instance;
    }    function test()
    {
        echo("test");
    }
}// 这个写法会出错,因为构造方法被声明为private//$test = new Example;// 下面将得到Example类的单例对象$test = Example::getInstance();$test->test();?>
<?php/**
 * 设计模式之单例模式
 * $_instance必须声明为静态的私有变量
 * 构造函数和析构函数必须声明为私有,防止外部程序new
 * 类从而失去单例模式的意义
 * getInstance()方法必须设置为公有的,必须调用此方法
 * 以返回实例的一个引用
 * ::操作符只能访问静态变量和静态函数
 * new对象都会消耗内存
 * 使用场景:最常用的地方是数据库连接。
 * 使用单例模式生成一个对象后,
 * 该对象可以被其它众多对象所使用。
 */class Example{//保存例实例在此属性中
    private static $_instance;//构造函数声明为private,防止直接创建对象
    public function __construct()
    {
        //初始的方法
    }//单例方法
    public static function getInstance()
    {
        if(!isset(self::$_instance))
        {            $c=__CLASS__;            self::$_instance=new $c;
        }        return self::$_instance;
    }    function test()
    {
        echo("test");
    }
}// 这个写法会出错,因为构造方法被声明为private//$test = new Example;// 下面将得到Example类的单例对象$test = Example::getInstance();$test->test();?>

相关推荐:

PHP单例模式的简单用法分享

php单例模式实例分析

什么是php单例模式?单例模式用法详解

以上就是PHP单例模式demo详解的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行