一个懒癌患者的自言自语



php单例模式

<?php
/*
 * 单例模式
 * 用于保存基本信息的单例类 存储URL目录、文件路径等数据供全局使用,PHP中一般应用于创建数据库链接,可以避免大量的资源消耗
 */
class Sington{
    //数据存储
	private $data = [];
	//保存例实例在此属性中
	private static $instance;
	//构造函数声明为private,防止直接创建对象
	private function __construct(){}
    //声明私有克隆方法,防止克隆对象
	private function __clone(){}
	//单例方法
	public static function getInstance(){
		if(empty(self::$instance)){
			self::$instance = new self();
		}
		return self::$instance;
	}
	//设置属性和属性值
	public function setData($key, $val){
		$this->data[$key] = $val;
	}
	//读取值
	public function getData($key){
		return $this->data[$key];
	}
}
//获取单例对象
$obj = Sington::getInstance();
//设置一个属性
$obj->setData("name","test");
//移除引用
unset($obj);
//重新获取单例对象
$obj2 = Sington::getInstance();
//输出属性name 的属性值
echo $obj->getData("name");
//输出 test,证明获取到的是同一实例

 

About ME

about me

kevin

一个在it道路上蹒跚学步的人

心有多大,舞台就有多大,一直奔跑在自己的路上!

Contact ME