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

时间:2015-10-13 11:35:20

标签: php

在db.php中:

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

在另一个file.php中:

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

如何在功能之外使用$conn?在线的所有答案都参考了相反的情况。我试过了global,但似乎并不适合我。

3 个答案:

答案 0 :(得分:3)

只需从函数返回并分配给变量。

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

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

答案 1 :(得分:1)

您可能想要使用'静态'像这样的关键字:

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

问候。

答案 2 :(得分:0)

您可以将其声明为全局并全局访问

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