【发布时间】:2014-08-29 21:37:04
【问题描述】:
我有一些与此类似的 php 代码:
$var1 = 'Variable 1';
$var2 = 'Variable 2';
class myClass {
function __construct() {
$this->var1 = $GLOBALS['var1'];
$this->var2 = $GLOBALS['var2'];
}
public function returnVars() {
return $this->var1 . ' ' . $this->var2; //Works fine
}
public static function returnVars2() {
//What should I do here?
}
}
如果我使用$myClass = new myClass() 实例化这个类,我可以使用returnVars() 方法或者只是从类中获取var1 和var2 就好了。我的问题是我需要在静态方法returnVars2() 中使用全局变量$var1 和$var2。我不能使用这个$this 关键字,因为该类没有被实例化(并且它们在构造函数中被声明),但我仍然无法正常访问全局变量。
非常感谢任何建议!
【问题讨论】:
-
您是否尝试过使用
global关键字? -
和你在构造函数中做的一模一样?顺便说一句,您不应该使用全局变量,只需将您需要的参数发送给方法。或者您的意思是使用常量而不是变量?
-
这段代码在架构方面非常糟糕
-
在静态方法中访问全局变量的方式与在任何其他函数中访问全局变量的方式完全相同。通过使用
$GLOBALS或使用global声明。有什么问题?
标签: php