PHP单例模式
1.单例类只能创建唯一的实例
2.单例类只能自己创建这一唯一实例
3.单例类需要为外界提供访问这个实例的方法
4.单例类多用于保存数据库连接的实例
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
class Singleton { private $db; private static $_instance; private function __construct() { $this->db = mysql_connect($servername,$username,$password); } public function getInstance() { if(!(self::$_instance instanceof self)) { self::$_instance = new self(); } return self::$_instance; } public function __clone() { trigger_error('Clone is not allow',E_USER_ERROR); } public function test() { echo 'test'; } } // 这个写法会出错,因为构造方法被声明为private $test=new Singleton; // 下面将得到Example类的单例对象 $test= Singleton::getInstance(); $test->test(); // 复制对象将导致一个E_USER_ERROR. $test_clone=clone $test; |