可以得到多个实例
class Single
{
protected $rnt;
public function __construct()
{
$this->rnt = mt_rand(10000,99999);
}
}
$s1 = new Single();
$s2 = new Single();
print_r($s1);
print_r($s2);
关键是防止外界随意的 new 多次
class Single
{
protected $rnt;
protected static $ins = null;
protected function __construct()
{
$this->rnt = mt_rand(10000,99999);
}
public static function getIns(){
if (self::$ins === null) {
self::$ins = new self();
}
return self::$ins;
}
}
$s1 = Single::getIns();
$s2 = Single::getIns();
print_r($s1);
print_r($s2);
$s3 clone $s2;
var_dump($s1 === $s2);
var_dump($s3 === $s2);