如何将一个变量声明为类的所有方法的全局变量


how to declare a variable as global for all methods of a class

我正在使用MYSQL PDO进行MYSQL查询,并且我已将数据库连接存储在变量$db中。在类的方法中使用PDO查询时,我必须在每个类中声明$db为全局变量。有没有一种方法可以一次将其声明为全局的,并且适用于所有方法?以下是我正在做的事情:

 <?php
    class example {
    method 1 {
    global $db;
    other statements
    }
    method 2 {
    global $db;
    other statements
     }
    }
    ?>

下面的代码也不起作用。

 <?php
    class example {
    global $db;
    method 1 {
    statements
    }
    method 2 {
    statements
     }
    }
    ?>

我建议像这样做

<?php
class example {
  protected $db;
  public function __construct(name'space'DB $db) {
    $this->db = $db;
  }
  public function method1() {
    $this->db->query()...
  }
  public function method2() {
    $this->db->query()...
  }
}
?>

像这样将DB类传递给其他类称为依赖注入。这是一个很好的惯例。如果你不确定它的意思,我强烈建议你读一读。

传入DB类后,我可以将其注册为类示例范围内的属性。然后这个类中的所有方法都可以使用它。