/**
* 单例模式 只产生一个实例化对象
*/
class human{
// 定义静态属性 保存生产的对象
private static $object = NULL;
// 构造方法私有化 禁止外部实例化对象
private function __construct(){
echo __METHOD__ . "<br>";
}
/**
* 定义一个静态方法 通过类内部返回实例化对象
* @return object
*/
public static function get_instance(){
// 判断保存的object静态属性对象是否是当前对象
if(!(self::$object instanceof self)){
// 如果不是 就实例化当前对象并保存到object静态属性
self::$object = new self();
}
// 返回对象
return self::$object;
}
}
// 通过静态成员方法访问
$h1 = human::get_instance();
$h2 = human::get_instance();
$h3 = human::get_instance();
var_dump($h1,$h2,$h3);
以上代码会返回