PHP-单例模式

<!--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();

猜你喜欢

转载自blog.csdn.net/cyh0503/article/details/81611843