【发布时间】:2020-06-30 11:18:43
【问题描述】:
我有一个看似简单的查询,但我在其他地方没有找到答案。 我有 2 个类,一个称为 DB,它本质上连接到数据库,然后可以运行查询。我在文档顶部实例化它 $db= new DB;然后我可以在整个页面中对数据库运行一系列查询。 我遇到的问题是我想在另一个名为 User 的类中使用这个实例。 我知道我可以再次实例化,但这没有意义,或者在实例化用户时传递数据库实例,例如 $user = new User($db);但是考虑到 $db 实例将被我要创建的大多数类使用,我认为有更好的解决方案可以将其导入其他类。 我查看了全局路线,但我读到这是不好的做法 + 我遇到了意外的全局错误
class User{
global $db;
public function __construct()
{
var_dump($this-> db);
}//end constructor
}//end class
【问题讨论】:
-
global在那里的关键字无效。您只能在函数中使用它。是的,这是个坏主意,new User($db)是最好的主意。 (User是否应该直接访问数据库是另一个话题;如果您遵循 Active Record 模式,则可以,否则不可以。)