php如何实现单例模式,关于PHP中单例模式的实现

由于我以前是做java开发的,在使用单例模式的时候,首先想到的想用饿汉式,然后发现在PHP中,有这样一个特性:因为PHP不支持在类定义时给类的成员变量赋予非基本类型的值。如表达式,new操作等等。转而想要确保这个单例模式的原子性,发现PHP中也没有像JAVA中的线程安全问题。

嘿嘿,你说PHP好不好?那么OK接下来就试试PHP的懒汉式单例模式了。

相关推荐:《PHP教程》

一、三私一公:

①、私有静态属性,又来储存生成的唯一对象

②、私有构造函数

③、私有克隆函数,防止克隆——clone

④、公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例

二、关键词instanceof

检查此变量是否为该类的对象、子类、或是实现接口。

1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化;

2、拥有一个保存类的实例的静态成员变量;

3、一个静态的公共方法用于实例化这个类,并访问这个类的实例;class SingleInstance{

private function _construct(){

}

private static $instance;

private function _clone(){

}

public static function getInstance(){

if(!self::$instance instanceof SingleInstance){

self::$instance=new SingleInstance();

}

return self ::$instance;

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值