php单例模式

实现单例的条件:三私一公

   三私:私有化构造方法:不让外部创建对象

    私有化克隆方法:不让外部克隆对象

    私有静态属性:保存已经产生的对象

   一公:公共静态方法:在类内部创建对象

优点:

  只能创建一个对象,可节省内存资源

例子:

<?php

    //单例模式:一个类只能创造一个对象 class Single{
        //属性 private $name;
        public static $counts = 0;

        //定义一个静态属性来保存对象 private static $single;
        
        //私有化构造方法 private function __construct($name){
            $this->name = $name;
            //计数 self::$counts++;
        }

        //私有化克隆方法 private function __clone(){
            //计数 self::$counts++;
        }

        //静态方法,让类进入到类的内部进行实例化得到对象 public static function getInstance($name){
            //判断对象是否已经存在,如果存在则直接返回原来对象,否则创造新对象 if(self::$single){
                //对象已经存在,返回原来对象 }else{
                //对象不存在 self::$single = new Single($name);
            }

            //返回对象 return self::$single;
        }
    }

    //实例化
    //$single = new Single('林志炫');

    //访问类对象数量
    //echo Single::$counts;

    //得到对象 $single = Single::getInstance('马云');
    var_dump($single);

    //访问类对象数量 echo Single::$counts;

    //得到对象 $single = Single::getInstance('马化腾');
    var_dump($single);

    //访问类对象数量 echo Single::$counts;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值