<?php
/**
* 单例模式,用于为一个类生成一个唯一的对象。
*
* 1,私有的静态变量存储单例对象
* 2,私有的构造函数,防止对象实例化
* 3,私有的克隆函数,防止对象被克隆
* 4,公有的获得单例对象函数
*
* 使用场景:数据库连接
*
**/
class Single
{
// 私有的静态变量存储单例对象
private static $_instance;
/**
* 私有的构造函数,防止实例化
**/
private function __construct() {
}
/**
* 私有的克隆函数,防止对象克隆
**/
private function __clone() {
}
/**
* 公有的获得单例对象函数的获得对象函数
**/
public function getInstance() {
if ( !isset(self::$_instance) ) {
self::$_instance = new self();
}
return self::$_instance;
}
}
// 1,直接实例化,提示错误
// $single = new Single();
// 2,通过获得实力方法
$single = Single::getInstance();
var_dump($single);
// 3,克隆对象,提示错误
// $single_clone = clone $single;
?>