在函数外部使用内部声明的变量


Use variable declared inside function outside of it

In db.php:

function connect() {
    // vars declared
    $conn = new mysqli($servername, $username, $password, $database);
}

在另一个文件中:

require_once('db.php');
connect();
$stmt = $conn->prepare("...");

如何在函数外使用$conn ?网上所有的答案都是相反的。我试过global,但似乎不适合我。

直接从函数返回并赋值给变量。

function connect() {
    // vars declared
    return new mysqli($servername, $username, $password, $database);
}
require_once('db.php');
$conn = connect();
$stmt = $conn->prepare("...");

你可以像这样使用'static'关键字:

function connect() {
    static $conn;
    if (is_null($conn)) {
        $conn = new mysqli($servername, $username, $password, $database);
    }
    return $conn;
}

请看这里:http://php.net/manual/en/language.variables.scope.php language.variables.scope.static

问候。

可以在外部声明并全局访问

$conn;
function connect() {
    // vars declared
    global $conn;
    $conn = new mysqli($servername, $username, $password, $database);
}