码迷,mamicode.com
首页 > Web开发 > 详细

[php学习]单例模式

时间:2014-10-09 14:52:53      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   sp   div   on   cti   log   new   

/** 2.Singleton
*/

class Singleton{

	private static $instance = null;
	public static function getInstance(){
		if (!isset(self::$instance)){  
            $c = __CLASS__;  
            self::$instance = new $c;  
         }  

		return self::$instance;
	}

	public function eventResult($id){
		return $id;
	}

	protected function __construct()
    {
    }
    private function __clone()
    {
    }
    private function __wakeup()
    {
    }
}

class SingletonChild extends Singleton
{
}

$obj = Singleton::getInstance();
var_dump($obj === Singleton::getInstance());           

$anotherObj = SingletonChild::getInstance();
var_dump($anotherObj === Singleton::getInstance());     

var_dump($anotherObj === SingletonChild::getInstance()); 

$objSingle = Singleton::getInstance();
$result = $objSingle->eventResult(100);

print_r($result);

注意的是对于:__construct,__clone,__wakeup 的修饰符设定防止被实例破坏单例。

[php学习]单例模式

标签:blog   io   ar   sp   div   on   cti   log   new   

原文地址:http://www.cnblogs.com/xiguain/p/4012996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!