2015-10-15 41 views
1

首先我知道PHP的基本知識,但我無法理解事情是如何工作的。我有以下代碼,它允許用戶通過啓動功能init(),通過功能hooksInit()爲其帳戶分配密碼。我需要知道爲什麼使用靜態變量。我讀過,沒有這個靜態變量會有很多來自數據庫的請求,但我不明白爲什麼會有很多來自數據庫的請求。如果可能,請保持簡單。爲什麼要在下面的代碼中使用靜態變量?

class WPHawy_CRP { 

private static $_instance = null; 


/* 
* The Constructor. 
*/ 
public static function init() { 

    if (null == self::$_instance) { 

     self::$_instance = new self; 

     self::$_instance->hooksInit(); 

    } 

    return self::$_instance; 
} 
+2

Google:singleton –

+0

它基本上確保您只使用該類的一個實例,又名。單身。 – Dencker

回答

0

這是一個單例模式的簡單實現。例如參見this question。這種模式的主要優點是隻允許在Web應用程序中使用對象的一個​​實例。此模式在數據庫連接期間廣泛使用,我們希望在整個Web應用程序中只共享一個數據庫連接。

+0

好的。您能否請用戶註冊過程舉個例子。我的意思是哪個實例將被使用一次。任何你想要的例子。你不限於我發佈的代碼。我只需要不要過程如何。 –

+0

也許這可能是一個很好的例子:http://bornageek.com/101/the-registry-pattern-and-php –

+0

謝謝你,你做了你最好的。我認爲這個帖子有我的回答 –

1

關鍵字「靜態」意味着它是一個函數,您將能夠使用而無需實例化類。

例如:WPHawy_CRP::init()

可變$_instance也是靜態靜態功能內所使用的目的。

具體來說,該代碼如下稱爲「單身」具體的設計模式,並允許你確保你將有隻有1類的實例。

+0

這正是發生了什麼,但是什麼讓我保留靜態變量的價值。我只是認爲這是對WordPress的登錄頁面的修改,允許用戶添加自己的密碼。我認爲這個類會爲一個用戶調用一次,那麼爲什麼這個類會使用靜態變量爲什麼會將更多的請求應用到數據庫。對不起,我的英語不好 –

相關問題