關於PHP中單例模式的實現

2020-07-16 10:05:53
由於我以前是做java開發的,在使用單例模式的時候,首先想到的想用餓漢式,然後發現在PHP中,有這樣一個特性:因為PHP不支援在類定義時給類的成員變數賦予非基本型別的值。如表示式,new操作等等。轉而想要確保這個單例模式的原子性,發現PHP中也沒有像JAVA中的執行緒安全問題。

嘿嘿,你說PHP好不好?那麼OK接下來就試試PHP的懶漢式單例模式了。

相關推薦:《PHP教學

一、三私一公:

①、私有靜態屬性,又來儲存生成的唯一物件

②、私有建構函式

③、私有克隆函數,防止克隆——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中單例模式的實現的詳細內容,更多請關注TW511.COM其它相關文章!