我對PHP比較陌生,我正在尋找一種方法來定義某些對象,這些對象可以在整個項目中從多個PHP腳本全局訪問。整個項目中的PHP全局變量
在Java中,如果我在全球範圍內訪問某些對象,我定義一個名爲Globals
一些公共類,並定義我需要訪問爲靜態在Globals
類的對象。然後,我隨時隨地訪問這些對象:Globals.variable_name
。
所以基本上,我只需要一次初始化這些全局對象,然後每當我需要他們使用它們..
一個用例:
我有一個名爲Logger
類有方法在日誌文件中記錄某些事件。我需要有1 Logger
實例/對象,可以在項目中的所有PHP腳本中使用,只要他們必須記錄一些內容。我寧願沒有使用它自己的Logger
實例的每個PHP腳本。
天真類似Java的方法我試過了,沒有工作:
我創建了一個單獨的PHP文件(名爲Globals.php)命名Globals
公共類類型的一個靜態對象Logger
,名稱爲$logHandle
。我將這個PHP文件包含在所有其他需要此Logger
對象的PHP文件中。然後我嘗試使用來自其他PHP腳本之一的Globals->logHandle
訪問此對象。這種嘗試失敗了。
有沒有類似的方法?
謝謝。
相關 - [爲什麼globals是邪惡的](http://stackoverflow.com/a/5166527/1607098)。嘗試使用[依賴注入](http://en.wikipedia.org/wiki/Dependency_injection)代替 – Touki
如果沒有在頁面上實例化對象而不能訪問成員數據,我會建議在類Globals中使用靜態變量並使用他們作爲包含文件中的Globals :: varname。 –
請記住,在Java中,您的靜態實例實際上是在不同的servlet之間共享的,因爲它們運行在同一個VM中,而在PHP中,您可以共享定義和代碼來創建實例,但是您沒有共享**狀態**腳本之間。 –