PHP设计模式之单例模式

Posted MiraclesGG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP设计模式之单例模式相关的知识,希望对你有一定的参考价值。

直接上代码;

<?php

class Singlecase
{
  // 声明私有变量
  private $name;
  // 声明静态变量
  public static $interest;
  // 声明私有的构造函数防止外部实例化
  private function __construct ()
  {
    // code...
  }

  // 外部调用入口(静态方法)
  public static function enterance ()
  {
    // 判断 $interest 是否有值
    if (!self::$interest) self::$interest = new Singlecase();
    // 返回当前对象
    return self::$interest;
  }

  // 单例模式测试方法,判断是否能成功调用内部方法
  public function setname ($n)
  {
    $this->name = $n;
  }

  public function getname ()
  {
    return $this->name;
  }

}

// 直接走后门调用静态方法
$a = Singlecase::enterance();
// 给setname函数传值
$a->setname("单例模式完成啦");
echo $a->getname();
$b = Singlecase::enterance();

if ($a == $b) {
  echo "</br>是同一个实例";
} else {
  echo "不是同一个实例";
}

为什么要用静态成员属性储存实例呢?

因为只有第一次实例化的时候才赋值、以后都直接给出静态实例。

以上是关于PHP设计模式之单例模式的主要内容,如果未能解决你的问题,请参考以下文章

php设计模式之单例实例代码

php 设计模式之单例模式

PHP设计模式之单例模式

PHP设计模式之单例模式

PHP设计模式之单例模式

PHP设计模式之单例模式