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


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

  • 相关阅读:
    分享知识-快乐自己:Shiro 退出登陆清空缓存实现
    分享知识-快乐自己:复选框、全选/反选/获取值
    分享知识-快乐自己:初中级 java 面试题宝典
    分享知识-快乐自己:Liunx 搭建 Dubbo
    分享知识-快乐自己:Liunx 安装 Zookeeper
    分享知识-快乐自己:揭秘HDFS
    计算文件的长度
    fgetc, getchar(), fscanf的问题
    绘制数学函数图像
    C语言遍历一个文件夹下面的所有文件
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4868919.html
Copyright © 2011-2022 走看看