php - 如何将全局变量传递给 PHP 中的类?

标签 php oop global-variables

如何将全局变量传递给我想使用的类,而无需在类的每个方法中都将它们声明为 GLOBAL?

例子:

$admin = "admin_area";

if($_POST['login']){
      $user = new Administrator;
      $user->auth($pass,$username);
    }

在 Administrator 类中,我希望变量 $admin 可以在类的所有方法中访问,而无需这样做:

class Administrator{

   public function auth($pass,$user){

     global $admin;
     .....

  }
  public function logout(){
    global $admin;

    .....
}

} 

最佳答案

好吧,你可以声明一个成员变量,并将它传递给构造函数:

class Administrator {
    protected $admin = '';

    public function __construct($admin) {
        $this->admin = $admin;
    }

    public function logout() {
        $this->admin; //That's how you access it
    }
}

然后实例化:

$adminObject = new Administrator($admin);

但我建议尽量避免使用全局变量。它们会使您的代码更难阅读和调试。通过像上面那样做(将其传递给类的构造函数),您可以大大改进它...

关于php - 如何将全局变量传递给 PHP 中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4768187/

相关文章:

javascript - 在 PHP 字符串中插入 JS 变量

java - 为什么执行时没有出现Error "Add unimplemented methods"(Eclipse)

java - 需要在 Java 中继承 API 的帮助

excel - 如何在 VBA 中声明全局变量?

javascript - TypeScript:从模块创建全局变量

php - 为 "$GLOBALS"构造的可变变量字符串在全局范围内工作,但不在函数范围内

php - jQuery UI 上的 CKEditor 内联编辑

PHP session 变量

php - YouTube API videoEntry计数评论

javascript - 在 IE 中使用 javascript getter 和 setter 时出错