????:<?php//hubby類僅允許被實(shí)例化一次class Hubby{ //1.new 來(lái)創(chuàng)建類實(shí)例 //2.clone 來(lái)克隆當(dāng)前類的實(shí)例 private function __construct(){}//構(gòu)造器私有化 private function __clone(){}//克隆私有化 //創(chuàng)建類的內(nèi)部靜態(tài)屬性,用于保存類的唯一實(shí)例 protected static $instance
<?php
//hubby類僅允許被實(shí)例化一次
class Hubby{
//1.new 來(lái)創(chuàng)建類實(shí)例
//2.clone 來(lái)克隆當(dāng)前類的實(shí)例
private function __construct(){}//構(gòu)造器私有化
private function __clone(){}//克隆私有化
//創(chuàng)建類的內(nèi)部靜態(tài)屬性,用于保存類的唯一實(shí)例
protected static $instance = null;
//創(chuàng)建一個(gè)外部接口,創(chuàng)建并返回當(dāng)前類的唯一實(shí)例
public static function getInstance(){
if (is_null(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
}
//從外部實(shí)例化Hubby類
$Hubby1 = Hubby::getInstance();
$Hubby2 = Hubby::getInstance();
echo ($Hubby1 instanceof Hubby )?'是':'不是';
echo "<br>";
echo ($Hubby2 instanceof Hubby )?'是':'不是';
echo "<br>";
echo ($Hubby1 ===$Hubby2) ? '完全相等':'不相等';
echo "<br>";
var_dump($Hubby1,$Hubby2);
?>
?? ???:天蓬老師?? ??:2019-04-01 10:02:37
???? ??:?jiǎn)卫J? 在很多地方都有應(yīng)用, 它的設(shè)計(jì)思想,影響到了許多其它的設(shè)計(jì)模式, 多做幾次, 它是創(chuàng)建型模式的基礎(chǔ)之一