// ::操作符只能访问静态变量和静态函数
// new对象都会消耗内存
// 使用场景:最常用的地方是数据库连接。
// 使用单例模式生成一个对象后, 该对象可以被其它众多对象所使用。
class Instance{
// $_instance必须声明为静态的私有变量
private static $_instance;
// 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义
private function __construct(){}
// 私有的__clone()方法防止克隆对象
final private function __clone(){}
// 防止被反序列化
final private function __wakeup(){}
// getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用
// instanceof 使用这个关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口,并进行相应的操作
public static function getInstance(){
if(!(self::$_instance instanceof self)){
// new对象都会消耗内存
self::$_instance = new self;
}
return self::$_instance;
}
public function test1(){
echo "单例模式";
}
public function test2(){
echo "19940906";
}
}
// 调用
$single = Instance::getInstance();
$single->test1();
$single->test2();
网友评论