<!--1. 它们必须拥有一个构造函数,并且必须被标记为private-->
<!--2. 它们拥有一个保存类的实例的静态成员变量-->
<!--3. 它们拥有一个访问这个实例的公共的静态方法-->
<!--单例类不能再其它类中直接实例化,只能被其自身实例化。-->
<!--它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。-->
<?php
class danli{
private $name;//声明一个私有的实例变量
private function __construct()
{
//声明私有构造方法为了防止外部代码使用new来创建对象
}
//声明一个静态变量
//保存在类中唯一的一个实例
static public $instance;
static public function getinstance(){
//声明一个getinstance()静态方法,用于检测是否有实例对象
if(!self::$instance) self::$instance = new self();
return self::$instance;
}
public function setname($n){
$this->name=$n;
}
public function getname(){
return $this->name;
}
}
$oa = danli::getinstance();
$ob = danli::getinstance();
$oa->setname('hello world');
$ob->setname('good morning');
echo $oa->getname();
echo "<br/>";
echo $ob->getname();
PHP-单例模式
猜你喜欢
转载自blog.csdn.net/cyh0503/article/details/81611843
今日推荐
周排行