2011-07-30 74 views
0

我必須使用全局變量(對象的引用)。根據某些情況,我必須加載不同的腳本才能使用。所有的腳本都必須使用這個$郵件程序。不幸的是,爲了做出這個決定,我使用了一個靜態函數,它「忘記」了全局變量。Php全局變量丟失

$mailer = new Mailer(); 
myFrameWork::loadModule(); 

....

public static function callModule() 
{ 
include_other_module_depends_on_circumstances_etc 
} 

,但包含的腳本不知道$郵件變量。它確定,因爲它的一種方法。但我不想將這個變量傳遞給callModule,我想要一個通用的解決方案。如果我剛剛使用:

$mailer = new Mailer(); 
include_other_module_depends_on_circumstances_etc 

然後它工作正常。

回答

0

我建議不要使用靜態方法進行這種工作;使用OOP很容易使用普通對象來進行初始化和填充。

鑑於你的類myFrameWork是完全靜態類,爲什麼不把它傳遞給它與另一個靜態類,並將其存儲在私有靜態變量?這樣你就不需要污染函數調用,仍然可以在需要的地方使用這個值。