单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
2 模式核心思想
1)某个类只能有一个实例;
2)它必须自行创建这个实例;
3)它必须自行向整个系统提供这个实例。
<?php
class Mysql{
//该属性用来保存实例
private static $conn;
//构造函数为private,防止外部创建对象
private function __construct(){
self::$conn = mysqli_connect('localhost','root','root');
}
//创建一个用来实例化对象的方法
public static function getInstance(){
if(!(self::$conn instanceof self)){
self::$conn = new self; //内部实例化
}
return self::$conn;
}
//防止对象被复制
public function __clone(){
trigger_error('Clone is not allowed !');
}
}
$mysql = Mysql::getInstance();