PHP如何在单例模式中使用场景以及和使用方法【技巧分享】

一个类只要一个目标实例

1、含义
作为目标的创立形式,单例形式保证某一个类只要一个实例,并且自行实例化并向整个体系全局地供给这个实例。它不会创立实例副本,而是会向单例类内部存储的实例回来一个引用。

2、单例形式的三个关键:
【1】需要一个保存类的唯一实例的静态成员变量:

private static $_instance;

【2】结构函数和克隆函数有必要声明为私有的,防止外部程序new类然后失去单例模式的意义:

private function __construct(){
    $this->_db = pg_connect('xxxx');
}
private function __clone(){
}//覆盖__clone()方法,禁止克隆

【3】必须提供一个拜访这个实例的公共的静态办法(一般为getInstance办法),从而回来唯一实例的一个引用


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

单例形式确保某个类只要一个实例,并且自行实例化并向整个体系供给这个实例。
单例形式是一种常见的规划形式,在计算机体系中,线程池、缓存、日志目标、对话框、打印机、数据库操作、显卡的驱动程序常被规划成单例。这里说下文章启发都是在2020泛目录程序这里受到启发后,然后开始学习php编程程序的!

单例形式分3种:懒汉式单例、饿汉式单例、登记式单例。

单例形式有以下3个特色:

1.只能有一个实例。
2.有必要自行创建这个实例。
3.有必要给其他目标供给这一实例。

那么为什么要运用PHP单例形式?
PHP一个主要使用场合便是使用程序与数据库打交道的场景,在一个使用中会存在大量的数据库操作,针对数据库句柄连接数据库的行为,运用单例形式能够避免大量的new操作。由于每一次new操作都会消耗体系和内存的资源。

class Single {
private $name;//声明一个私有的实例变量
private function __construct(){//声明私有构造方法为了防止外部代码使用new来创建对象。
}
static public $instance;//声明一个静态变量(保存在类中唯一的一个实例)
static public function getinstance(){//声明一个getinstance()静态方法,用于检测是否有实例对象
if(!self::$instance) self::$instance = new self();
return self::$instance;
}
public function setname($n){ $this->name = $n; }
public function getname(){ return $this->name; }
}
$oa = Single::getinstance();
$ob = Single::getinstance();
$oa->setname('hello world');
$ob->setname('good morning');
echo $oa->getname();//good morning
echo $ob->getname();//good morning

以上就是今天小编和各位分享的PHP如何在单例模式中使用场景以及和使用方法的技巧分享了,希望能对大家有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值