PHPSingleton模式的例子

简介:

在这篇文章中PHPSingleton模式的解释不一定好!仅举它的一个例子。其目的是为了让自己通过一个例子来加深对Singleton模式的理解!这里,以供参考!


单例:能够简单的理解是通过一个类,仅仅能实例化单个对象,不能实例化多个对象!

class e {

    public $uname;

    static $obj = NULL;      //定义一个静态属性

    private function __construct() {    //在构造方法前使用private属性,目的是不能在类的外部实例化对象。

                                                              //即不能$a=new e();

    }                                                        //假设要使用newkeyword来实例化对象就会调用该构造函数,

                                                             //而该函数已经被修饰为private,此时使用newkeyword实例化对象时会报错。

    static function getObj() {

        if (is_null(self::$obj)) {

            self::$obj = new e();        //在类的内部实例化对象赋给静态属性;在第一次实例化对象时。

        }                                              //$obj会被赋值,以后再实例化对象时,

        return self::$obj;                  //由于有这里的推断所以不会反复实例对象仅仅会实例化一次对象;

    }                                                  //多次实例化对象时。仅仅是把对象的引用赋值给了变量,不会再次实例化对象

}

$d = e::getObj();

$d->uname = 100;

echo $d->uname;        //100

$e = e::getObj();

$e->uname = 200;

echo $d->uname;        //会输出200。$d对象的uname值也被该表了,由于$e和$d指向同一个对象

echo $e->uname;        //输出200


版权声明:本文博主原创文章。博客,未经同意不得转载。




本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4868919.html,如需转载请自行联系原作者


相关文章
|
3天前
|
C#
C#有趣小例子(三)
C#有趣小例子(三)
14 2
|
3天前
|
C#
C#的小例子和总结(二)
C#的小例子和总结(二)
15 0
|
3天前
|
C#
C#的小例子和总结(四)
C#的小例子和总结(四)
8 1
|
Java Spring 数据采集
需要些例子
教您使用java爬虫gecco抓取JD全部商品信息教您使用DynamicGecco抓取JD全部商品信息 Gecco+Spring+Mybatis完整例子,下载妹子图美女图片 结合spring的插件gecco-spring 结合htmlunit的插件ge...
1018 0
|
数据安全/隐私保护
|
算法 Android开发 计算机视觉
|
SQL 数据库 关系型数据库