PHP中的单例模式

*单例模式不能通过 new 类名(); 来实例化对象

class Person{
	private static $interion;
	private $pop = array();
	private function __construct(){}

	public function getInterion(){
		if(empty($interion)){
			self::$interion = new Person();
		}
		return self::$interion;
	}

	public function setParam($key,$val){
		$this->pop[$key] = $val;
	}

	public function getParam($key){
		return $this->pop[$key];
	}
}

  

1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;

2、拥有一个保存类的实例的静态成员变量

3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化

通用实例化对象的方法

$p = new Person();

  

单例模式下对类的操作来生成对象

$stu = Person::getInterion();
$stu->setParam("a","XY");
echo $stu->getParam("a");

  .

单例模式的例子:比如对于数据库的操作时候。

原文地址:https://www.cnblogs.com/xy404/p/3983461.html