单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例
<?php
//单例
class Uni{
//创建静态私有的变量保存该类对象
static private $instance;
//参数
private $config;
//防止直接创建对象
private function __construct($config){
$this -> config = $config;
echo "我被实例化了";
}
//防止克隆对象
private function __clone(){
}
static public function getInstance($config){
//判断$instance是否是Uni的对象
//没有则创建
//instanceof确定某个类是否特定的类型,或者是否实现了特定的接口
//具体可参考https://www.jb51.net/article/74409.htm
if (!self::$instance instanceof self) {
self::$instance = new self($config);
}
return self::$instance;
}
public function getName(){
echo $this -> config;
}
}
$db1 = Uni::getInstance(1);
$db1 -> getName();
?>