您好,登錄后才能下訂單哦!
PHP中的單例模式是怎么實現?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在使用單例模式的時候,首先想到的想用餓漢式,然后發現在PHP中,有這樣一個特性:因為PHP不支持在類定義時給類的成員變量賦予非基本類型的值。如表達式,new操作等等。轉而想要確保這個單例模式的原子性,發現PHP中也沒有像JAVA中的線程安全問題。
一、三私一公:
①、私有靜態屬性,又來儲存生成的唯一對象
②、私有構造函數
③、私有克隆函數,防止克隆——clone
④、公共靜態方法,用來訪問靜態屬性儲存的對象,如果沒有對象,則生成此單例
二、關鍵詞instanceof
檢查此變量是否為該類的對象、子類、或是實現接口。
1、一個private的__construct是必須的,單例類不能在其它類中實例化,只能被自身實例化;
2、擁有一個保存類的實例的靜態成員變量;
3、一個靜態的公共方法用于實例化這個類,并訪問這個類的實例;
class SingleInstance{ private function _construct(){ } private static $instance; private function _clone(){ } public static function getInstance(){ if(!self::$instance instanceof SingleInstance){ self::$instance=new SingleInstance(); } return self ::$instance; } }
關于PHP中單例模式的實現就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。