PHP设计模式篇-单例模式详解

单例模式经常被用到一个对象只需要实例化一次的场景,例如数据库类,操作cookie类,文件上传类,只允许被实例化一次节省了程序资源,提高了程序运行效率,下面分成七步详情介绍。一、如何判断两个对象是全等于的情况?答案:这两个对象是同一个实例化得到的对象才会全等于,运行下面代码single类实例化了两次,所以会输出不是一个对象<?phpclass single{}$s1 = new single();$s2 = new single();//两个对象是一个的时候才全等于if ($s1 =
摘要由CSDN通过智能技术生成

单例模式经常被用到一个对象只需要实例化一次的场景,例如数据库类,操作cookie类,文件上传类,只允许被实例化一次节省了程序资源,提高了程序运行效率,下面八小点详细介绍了实现的基本思路。

一、如何判断两个对象是全等于的情况?答案:这两个对象是同一个实例化得到的对象才会全等于,运行下面代码single类实例化了两次,所以会输出不是一个对象

<?php
class single{
   
}
$s1 = new single();
$s2 = new single();
//两个对象是一个的时候才全等于
if ($s1 === $s2) {
   
	echo '是一个对象';
} else {
   
	echo '不是一个对象';
}

二、封锁new操作,让类只允许实例化一次,下面代码把构造类设置为protected类型,就不能直接new操作

<?php
class single{
   
	protected function __construct(){
   
	
	}
}

三、留个接口来new对象,运行下面代码single类在内部被实例化了两次,故会输出不是一个对象

<?php
class single{
   

	protected function __construct(){
   

	}
	
	public static function getIns(){
   
		return new self();
	}

}
$s1 = single::getIns();
$s2 = single::getIns();
if ($s1 === $s2) {
   
	echo '是一个对象';
} else {
   
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值