class Single
{
protected static $ins = null;
// 1. 封锁new操作 3.不允许覆盖
final protected function __construct()
{
}
// 4.防止克隆
final protected function __clone()
{
}
public static function getIns()
{
// 2.
if (self::$ins === null) {
self::$ins = new static();
}
return self::$ins;
}
}
// 会报错
//$oo = new Single();
$jj = Single::getIns();
$kk = Single::getIns();
if ($jj === $kk) {
echo "是一个对象";
} else {
echo "不是一个对象";
}
//
//class multi extends Single
//{
// public function __construct()
// {
// }
//}
//
//$s1 = new multi();
//$s2 = new multi();
//if ($s1 === $s2) {
// echo "是一个对象";
//} else {
// echo "不是一个对象";
//}
//
//$jj0 = clone $jj;
//if ($jj === $jj0) {
// echo "是一个对象";
//} else {
// echo "不是一个对象";
//}
//