1.拥有一个构造函数,并且为private
2.拥有一个静态成员变量用来保存类的实例
3.拥有一个访问这个实例的静态方法
<?php
class Single
{
//静态成员变量
static public $instance;
//private属性的构造函数
private function __construct()
{
echo '12312';
}
//访问这个实例的静态方法
public static function getInstance()
{
if (!self::$instance){
self::$instance = new self();
}
return self::$instance;
}
//被调用的方法
public function getAbc()
{
return 'abc';
}
}
<?php
namespace app\controller;
use app\BaseController;
class Index extends BaseController
{
//控制器使用单例模式
public function getSingle(){
$abc = \Single::getInstance()->getAbc();
\Single::getInstance()->getAbc();
\Single::getInstance()->getAbc();
\Single::getInstance()->getAbc();
\Single::getInstance()->getAbc();
halt($abc);
}
}
在调用的方法里无论实例化多少次,在单例模式里面只会实例一次