abstract:<?php //單例模式:一個(gè)類僅允許被實(shí)例化一次 class Wife { } $wife1 = new Wife; $wife2 = new Wife; //查看$wife1和$wife2是否和Wife相等 echo ($wife1 instanceof Wife)?'是
<?php //單例模式:一個(gè)類僅允許被實(shí)例化一次 class Wife { } $wife1 = new Wife; $wife2 = new Wife; //查看$wife1和$wife2是否和Wife相等 echo ($wife1 instanceof Wife)?'是':'不是'; echo '<br>'; echo ($wife2 instanceof Wife)?'是':'不是'; echo '<br>'; //查看$wife1和$wife2是否相等 echo ($wife1 === $wife2)?'相等':'不相等'; echo '<br>'; //打印輸出 var_dump($wife1); echo '<br>'; var_dump($wife2); // object(Wife)#1 (0) { } // object(Wife)#2 (0) { } //他們不是同一個(gè),id不一樣 echo '<hr>'; //實(shí)例化通過(guò)兩種方式:1.new來(lái)創(chuàng)建類實(shí)例;2.clone來(lái)實(shí)例 //數(shù)據(jù)庫(kù)連接對(duì)象pdo等只能被實(shí)例化一次 //Hubby僅被實(shí)例化一次,在類中先私有化,再進(jìn)行實(shí)例化 class Hubby { 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)){ //進(jìn)行實(shí)例化,靜態(tài)延遲綁定 static::$instance = new static(); } //動(dòng)態(tài)調(diào)用返回值 return static::$instance; } } //外部實(shí)例化Hubby類 $hubby1 = Hubby::getInstance(); $hubby2 = Hubby::getInstance(); echo ($hubby1 instanceof Hubby)?'是':'不是'; echo '<br>'; echo ($hubby2 instanceof Hubby)?'是':'不是'; echo '<br>'; //查看他們是同一個(gè)實(shí)例對(duì)象,結(jié)果id也是一樣的 echo ($hubby1 === $hubby2)?'完全相等':'不相等'; echo '<br>'; var_dump($hubby1); echo '<br>'; var_dump($hubby2); echo '<hr>';
Correcting teacher:查無(wú)此人Correction time:2019-03-22 17:28:40
Teacher's summary:完成的不錯(cuò)。編程有很多種功能,寫(xiě)法。這種設(shè)計(jì)模式,可以快速解決問(wèn)題。繼續(xù)加油