我有一些与此类似的 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
关键字,因为该类未实例化(并且它们在构造函数内声明),但我仍然无法正常访问全局变量。
非常感谢任何建议!
最佳答案
将变量声明为静态成员:
class foo {
public static $var1;
public static $var2;
function __construct() {
foo::$var1 = $GLOBALS['var1'];
foo::$var2 = $GLOBALS['var2'];
}
}
然后您可以在该类中的任何方法(无论是否静态)中以 foo::$varX
的形式访问它们。
关于php - 在 PHP 中的静态方法中访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25576610/