首先,我定義個(gè)類,實(shí)現(xiàn)單例模式:(這里是簡(jiǎn)單一寫,就是個(gè)最基本的單例)classDemo{publicstatic$instance;privatefunction__Construct(){//TODO}publicstaticfunctiongetInstance(){if(!self::$instance){self::$instance=newstatic();}returnself::$instance;}publicfunctioncall(){//其他方法}}下面有兩種方式實(shí)例化類:1.在需要用的地方$aa=Demo::getInstance();$bb=Demo::getInstance();$cc=Demo::getInstance();這樣調(diào)用肯定是沒問題的,一般情況也是這樣初始化。2.定義一個(gè)普通類,寫個(gè)函數(shù)初始化,保存在一個(gè)靜態(tài)變量,如下:類:classDemo{publicfunction__Construct(){//TODO}}函數(shù):functionget_obj(){static$obj;if($obj){return$obj;}else{$obj=newDemo;return$obj;}}在需要調(diào)用的地方這樣寫:$obj=get_obj();$obj->call();$obj2=get_obj();$obj2->call();$obj3=get_obj();$obj3=get_obj();這樣不是也只實(shí)例化一次這個(gè)類嗎?
關(guān)于PHP單例模式,有一點(diǎn)不明白,求指教!
慕虎7371278
2019-04-21 20:14:51