<?php
//创建单例
class Singleton {
// 实例对象
private static $_instance = null;
/**
* 声明一个私有的构造函数,方式通过new来实例化
* 关闭: 通过初始化来实例化对象
*/
private function __construct() {
}
/**
* 获取对象实例
*/
public static function getInstance() {
// 第一次实例化开始时, self::$_instance=null
if (is_null(self::$_instance)) {
// 给实例属性赋值 实例化当前类
self::$_instance = new self();
}
// 第二次实例化时,self::$_instance!=null
return self::$_instance;
}
/**
* 关闭clone对象复制的开关
*/
public function __clone() {
die("单例模式不能克隆");
}
}
如何使用这个单例类来获取我们的实例的
<?php
Singleton::getInstance(); // 首次初始化(实例化)
通过上面的例子,我们实现了单例模式,无论我们怎样实例化类,都只能实例化一次类,大大的节省里系统资源的创建和销毁的开销