2011-07-30 170 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是完全静态类,为什么不把它传递给它与另一个静态类,并将其存储在私有静态变量?这样你就不需要污染函数调用,仍然可以在需要的地方使用这个值。