首页 > Web开发 > 详细

PHP单例模式的实现

时间:2015-10-16 13:40:56      阅读:222      评论:0      收藏:0      [点我收藏+]

单例模式的意义在于,很多时候不需要创建重复的实例。

用PHP实现单例模式的原理是,使用一个静态变量存储实例,当遇到重复的“new”操作时,直接返回静态变量中存储的实例。

典型的应用有数据库类,请看代码:

<?php 
class DB{
	
	//用来存储实例的静态变量  
	public static $instance;
	
	//记录实例的个数 
	public static $num = 0;
	
	public function __construct(){
		
		//如果实例已经存在,直接返回
		if(self::$instance){
			return self::$instance;
		}
		
		//创建数据库连接 
		$con = mysql_connect(‘localhost‘,‘root‘,‘root‘);
		mysql_select_db(‘test‘);
		
		//实例计数器加一
		self::$num++;
		//将实例存储到静态变量 
		self::$instance = $this;
		
	}
	
	//示例方法 
	public function query(){
		
	}
	
}
?>

这样就用单例模式实现了一个数据库类,我还使用了一个静态变量 $num ,作用是检测单例模式有没有起作用。使用下面的代码可以检测:

<?php

$db = new DB();
//输出为1 
echo DB::$num;
echo ‘<br/>‘;

$db2 = new DB();
//输出为1 说明没有重复创建实例 
echo DB::$num;
echo ‘<br/>‘;

//输出为1 说明两个实例是同一个 
echo $db == $db2;


?>

不管使用多少次“new” 操作,在同一个页面中始终只有一个实例存在,这就是我们想要的结果~

PHP单例模式的实现

原文:http://my.oschina.net/crazymus/blog/517953

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!