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


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

  • 相关阅读:
    TongJI Online Judge预赛(3): Game
    堆栈小应用:配对
    在.net中使用Udp协议创建简单的聊天程序
    TongJI Online Judge预赛(2): LOVE LETTER
    全排列问题之递归求解
    如何打造RSS阅读器
    Html 常用标志总结
    实现页面的分帧显示
    每天OnlineJudge之 “数素数”
    文本编辑器中,如何设计 撤销/重复栈
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4868919.html
Copyright © 2011-2022 走看看