我正在使用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类后,我可以将其注册为类示例范围内的属性。然后这个类中的所有方法都可以使用它。