php - 在 PHP 中的静态方法中访问全局变量

标签 php

我有一些与此类似的 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/

相关文章:

php - 如何创建一个循环来传递MySQL表中的空数据

javascript - php在ajax请求中返回空白

php - 提高MySQL查询性能——可能的索引问题

php - 上传图像(JPEG)时有没有办法检查 DPI?

javascript - ajax重新加载后,查询无法从url获取id

PHP,帮助显示相关表的查询结果

php - 如何从在线插入到两个表中?

php - 与盐渍 SHA512 相比,盐渍 SHA1 有多不安全

php - php中的多个输入

php - 上传文件时 undefined index