<?php * Class Singleton * 單例模式,也叫單子模式,是一種常用的軟件設(shè)計(jì)模式。在應(yīng)用這個(gè)模式時(shí),單例對(duì)象的類必須保證只有一個(gè)實(shí)例存在, * 充分體現(xiàn)了 DRY(Don't Repeat Yourself)的思想。 * * 實(shí)現(xiàn)單例模式的思路是:一個(gè)類能返回對(duì)象一個(gè)引用(永遠(yuǎn)是同一個(gè))和一個(gè)獲得該實(shí)例的方法(必須是靜態(tài)方法,通常使用getInstance這個(gè)名稱); * 當(dāng)我們調(diào)用這個(gè)方法時(shí),如果類持有的引用不為空就返回這個(gè)引用,如果類保持的引用為空就創(chuàng)建該類的實(shí)例并將實(shí)例的引用賦予該類保持的引用; * 同時(shí)我們還將該類的構(gòu)造函數(shù)定義為私有方法,這樣其他處的代碼就無法通過調(diào)用該類的構(gòu)造函數(shù)來實(shí)例化該類的對(duì)象,只有通過該類提供的靜態(tài)方法來得到該類的唯一實(shí)例。 * * 應(yīng)用場(chǎng)景:適用于一個(gè)類只有一個(gè)實(shí)例的場(chǎng)景。數(shù)據(jù)庫(kù)連接,日志記錄,購(gòu)物車 * 缺點(diǎn):PHP運(yùn)行是頁面級(jí)別的,無法直接實(shí)現(xiàn)跨頁面的內(nèi)存數(shù)據(jù)共享。 */ class Singleton { //保存類實(shí)例的私有的靜態(tài)成員變量 private static $_instance; //私有的構(gòu)造方法 private function __construct() { echo 'This is a Constructed method;'; } //創(chuàng)建一個(gè)空的私有__clone方法防止對(duì)象被克隆 private function __clone() { } //單例方法,用于獲取唯一的實(shí)例對(duì)象 public static function getInstance() { if (!(self::$_instance instanceof self)) { //instanceof用于檢測(cè)對(duì)象與類的從屬關(guān)系,is_subclass_of對(duì)象所屬類是否類的子類 self::$_instance = new self(); } return self::$_instance; } //測(cè)試 public function test() { echo 123; } } $a = Singleton::getInstance(); $a->test(); echo PHP_EOL; $b = Singleton::getInstance(); //第二次調(diào)用時(shí)不執(zhí)行構(gòu)造方法 $b->test(); echo PHP_EOL; //$c=new Singleton();由于構(gòu)造方法私有,這個(gè)會(huì)報(bào)錯(cuò)的 //$d=clone $a;克隆對(duì)象報(bào)錯(cuò)
? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??
?? ?? ?? ??? | Uma Musume Pretty Derby
1 ? ? ?
By Jack chen
<night> : ???? 99 ? - ?? ?? ? ?? ?? ??
4 ? ? ?
By DDD
Uma Musume Pretty Derby ?? ?? (2025 ? 7 ?)
1 ? ? ?
By Jack chen
?? ? ??? ????? Rimworld Odyssey ?? ???
3 ? ? ?
By Jack chen
Windows ??? ?? ??? ??? ???? ????
1 ? ? ?
By 下次還敢

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)