在我正在构建的webapp中,我使用PDO数据库对象来查询我的数据库。 这是使用我基于PDO构建的自定义类在每个页面的顶部实例化的:
$db = new database; //database is the name of my class.
然后我在我的脚本中使用这样的类:
$db->query("SELECT field FROM table");
$results = $db->resultset();
我有许多需要使用数据库对象的独立函数。
我的问题是更好的做法是将$db
作为参数传递给函数,或者只是在函数内全局化,因为$db
是一个全局使用的变量。但是我听说过避免污染全局命名空间的事情。
即
function myFunction($db, $a1, $a2){
//stuff
}
VS
function myFunction($a1, $a2){
global $db;
//stuff
}
答案 0 :(得分:0)
在我看来,全球变量很少是一种好的做法。我认为你应该使用第一个解决方案:将db实例作为第一个参数传递给你的函数。
如果您只有database
的一个实例,则更好的选择是让您的database
课程成为单身人士。
这样您就可以在函数中执行$db = database.getInstance();
之类的操作。