class
Config1 {}
class
Config
{
* 必须先声明一个静态私有属性:用来保存当前类的实例
* 1. 为什么必须是静态的?因为静态成员属于类,并被类所有实例所共享
* 2. 为什么必须是私有的?不允许外部直接访问,仅允许通过类方法控制方法
* 3. 为什么要有初始值null,因为类内部访问接口需要检测实例的状态,判断是否需要实例化
private
static
$instance
= null;
private
$setting
= [];
private
function
__construct(){}
private
function
__clone(){}
public
static
function
getInstance()
{
if
(self::
$instance
== null) {
self::
$instance
=
new
self();
}
return
self::
$instance
;
}
public
function
set(
$index
,
$value
)
{
$this
->setting[
$index
] =
$value
;
}
public
function
get(
$index
)
{
return
$this
->setting[
$index
];
}
}
$obj1
=
new
Config1;
$obj2
=
new
Config1;
var_dump(
$obj1
,
$obj2
);
echo
'<hr>';
$obj1
= Config::getInstance();
$obj2
= Config::getInstance();
var_dump(
$obj1
,
$obj2
);
$obj1
->set('host','localhost');
echo
$obj1
->get('host');