<?php
/**
* PHP的单例模式:让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源。典型应用:数据库连接
* PHP的单例模式实现要求:
* 1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化;
* 2、拥有一个保存类的实例的静态成员变量;
* 3、一个静态的公共方法用于实例化这个类,并访问这个类的实例;
*/
class Demo
{
private static $ins; //保存对象的静态属性
private function __construct()
{
echo "私有化构造方法<br>";
}
//禁止克隆
private function __clone()
{
}
public static function getInstance()
{
if (!(self::$ins instanceof self)) {
echo "实例化<br>";
self::$ins = new self;
}
return self::$ins;
}
//类的其它方法
public function test()
{
echo "测试方法<br>";
}
}
//多次调用类的实例
Demo::getInstance()->test();
Demo::getInstance()->test();
//输出结果
/*
实例化
这是构造方法
测试方法
测试方法
*/
//通过结果,可以看到Demo类只实例化了一次。