0

在我正在构建的 webapp 中,我使用 PDO 数据库对象来查询我的数据库。这是使用我基于 PDO 构建的自定义类在每个页面的顶部实例化的:

$db = new database; //database is the name of my class.

然后我在我的脚本中使用这样的类:

$db->query("SELECT field FROM table");
$results = $db->resultset();

我有许多需要使用数据库对象的独立函数。

$db我的问题是将作为参数传递给函数或只是从函数内部进行全球化是更好的做法,因为$db它是一个全局使用的变量。但是,我听说过有关避免污染全局名称空间的事情。

IE

function myFunction($db, $a1, $a2){
    //stuff
}

对比

function myFunction($a1, $a2){
    global $db;
    //stuff
}
4

1 回答 1

0

在我看来,全局变量很少是一个好习惯。我认为您应该使用第一个解决方案:将 db 实例作为第一个参数传递给您的函数。

如果你只有一个实例,database更好的选择是让你的database类成为单例。这将允许您$db = database.getInstance();在函数中执行类似的操作。

于 2013-07-25T10:45:51.397 回答