从包含的php文件获取变量

时间:2015-03-22 13:52:02

标签: php

我有以下代码:

db.php中

$dbhost = "localhost";
$dbname = "database";
$dbuser = "admin";
$dbpass = "12345";

global $db;

$db = new mysqli();

$db->connect($dbhost, $dbuser, $dbpass, $dbname);
$db->set_charset("utf8");

随机file.php

require_once 'db.php';

doSomething($db, $value1, $value2);

正如您所看到的,我正在尝试将random-file.php中的$ db变量作为参数传递。这个$ db变量在db.php中定义。

这一切都适用于PHP 5.4.34,我完全没有问题。但是:如果我使用PHP 5.6.3运行此代码,则会收到以下错误消息:

Notice: Undefined variable: db

我的代码设置有什么问题?我怎样才能实现我的代码与PHP 5.4和5.6同时工作?

1 个答案:

答案 0 :(得分:1)

您使用的全局变量不是必需的。您应该选择在此方案中传递参数。

function db_conn($dbhost, $dbname, $dbuser, $dbpass) {
    $db = new mysqli();
    $db->connect($dbhost, $dbuser, $dbpass, $dbname);
    $db->set_charset("utf8");
    return $db;
}

$db_handle = db_conn("localhost", "database", "admin", "12345");
doSomething($db_handle, $value1, $value2);

您将所有数据库详细信息直接传递给函数,然后该函数返回您在文件中使用的句柄。