background image

1

PHP

PHP

PHP

PHP 中的单例模式

(singleton pattern):指的是在

PHP

PHP

PHP

PHP

的应用程序的范围内只对指定的类创建一个实例。

PHP

PHP

PHP

PHP

中使用单例模式的类通常拥有一个私有构造函数和一个私有克隆函数,以防止用户通过创建对象或者

克隆对其进行实例化。还有一个静态私有成员变量$instance 与静态方法 getInstance。getInstance 负责对其本身
实例化,然后将这个对象存储在$instance 静态成员变量中,以确保只有一个实例被创建。

例如:
<?php
//单例模式的类 Lock
class Lock
{
//静态属性$instance
static private $instance = NULL;
//一个普通的成员属性
private $switch = 0;
//getInstance 静态成员方法
static function getInstance()
{
//如果对象实例还没有被创建,则创建一个新的实例
if(self::$instance == null)
{
self::$instance = new Lock();
}
//返回对象实例
return self::$instance;
}
//空构造函数
private function Lock()
{
}
//空克隆成员函数
private function __clone()
{
}
//设置$switch 的函数,如果$switch 为0则将其设置成1,否则将其设置成0
function setLock()
{
if($this->switch == 0)
$this->switch == 1;
else
$this->switch = 0;
}
//获取$switch 的状态
function getLock()
{
//返回 switch 属性
return $this->switch;
}
}
//调用单例,设置$switch
Lock::getInstance()->setLock();
//判断开关状态
if(Lock::getInstance()->getLock() == 0)
echo “开关状态:关”;
else
echo “开关状态:开”;
?>
结果:
开关状态:关