PHP的单例模式详解

单例模式
今天在网上看了一下PHP的单例模式,和iOS的作用基本一样,减少了初始化类的次数,避免每次初始化类内存的消耗,下面我们来试一下如何创建一个单例:
private $instance;     //保存类实例的静态成员变量,必须是private

private __contruct () {
     //注意,单例类的构造函数也是private类型的,因为要避免外界的实例化
}

public getInstance () 
{
    if(!(self::$_instance instanceof self)) {
         self::$_instance = new self;
    }
    return self::$_instance;
}

public test () 
{
    echo "这是一个单例的测试";
}
外部调用:
$dele = dele::getInstance();
$dele->test();

那么这样,一个单例模式的实例就完成了;

说一下优缺点吧:
优点:避免了重复初始化类,节省了初始化时内存资源和系统资源的消耗
缺点:在PHP中,不管全局变量还是静态成员,它们的载体都是当前页面,每次页面的刷新都会重新生成对象(也就是每次都会初始化类);当页面执行完成后对象也会被清空,这样看来的话,PHP中的单例模式是不是没有任何卵用呢?欢迎高手纠正错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值