<?php
class Mysql{
//该属性用来保存实例
private static $conn;
// 私有的构造函数,防止在类外创建对象
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;
}
// 私有的克隆方法,防止在类外 clone 对象
public function __clone(){}
//防止反序列化后创建对象
private function __wakeup(){
trigger_error('Unserialized is not allowed !');
}
}
//只能这样取得实例,不能 new 和 clone
$obj1 = Mysql::getInstance();
$obj2 = Mysql::getInstance();
$obj3 = Mysql::getInstance();
var_dump($obj1, $obj2, $obj3);
?>