从包含的php文件中获取变量


Getting variable from included php file

我有以下代码:

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");

随机文件.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兼容?

您使用的全局变量不是必需的。在这种情况下,您应该选择传递参数。

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);

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