单例模式经常被用到一个对象只需要实例化一次的场景,例如数据库类,操作cookie类,文件上传类,只允许被实例化一次节省了程序资源,提高了程序运行效率,下面八小点详细介绍了实现的基本思路。
一、如何判断两个对象是全等于的情况?答案:这两个对象是同一个实例化得到的对象才会全等于,运行下面代码single类实例化了两次,所以会输出不是一个对象
<?php
class single{
}
$s1 = new single();
$s2 = new single();
//两个对象是一个的时候才全等于
if ($s1 === $s2) {
echo '是一个对象';
} else {
echo '不是一个对象';
}
二、封锁new操作,让类只允许实例化一次,下面代码把构造类设置为protected类型,就不能直接new操作
<?php
class single{
protected function __construct(){
}
}
三、留个接口来new对象,运行下面代码single类在内部被实例化了两次,故会输出不是一个对象
<?php
class single{
protected function __construct(){
}
public static function getIns(){
return new self();
}
}
$s1 = single::getIns();
$s2 = single::getIns();
if ($s1 === $s2) {
echo '是一个对象';
} else {