zoukankan      html  css  js  c++  java
  • 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


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

  • 相关阅读:
    小孩抓周
    psychology
    绝恋诗词
    一万小时定律
    王国维的人生三重境界
    2017年日历
    018 cisco 3560 MAC地址绑定
    017 SSH
    016 ppp authentication
    unity Tilemap
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4868919.html
Copyright © 2011-2022 走看看