我对PHP OOP的最佳实践有疑问,将方法中使用的全局变量联系起来。我知道我在做什么是不正确的,但我不确定应该怎么做。
我们正在使用此数据库类:https://github.com/joshcam/PHP-MySQLi-Database-Class/blob/master/MysqliDb.php
我们在config.php
文件中创建对象,每个页面都需要以下代码行。
$db = new MysqliDb(host,user,pwd,dbname);
但是,如果我们希望访问数据库,我们所有类中的每个方法都必须使用global $db
。这是不好的做法吗?如果是这样,应该怎么做? 我们类的所有是否应该扩展数据库类(MysqlDb)?
非常感谢您的帮助!
答案 0 :(得分:0)
mysqli-db有一个MysqliDb::getInstance()
静态调用来获取初始化对象。因此,您使用new()
在config.php中对其进行初始化,然后使用MysqliDb::getInstance()
来获取对象。