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");
.
单例模式的例子:比如对于数据库的操作时候。