我正在使用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
}
}
?>
答案 0 :(得分:2)
我建议这样做
<?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类后,我可以将它注册为类示例范围内的属性。然后,这个类中的所有方法都可以使用它。