0

我有以下代码创建一个 PDO 对象,它位于 core.php 的末尾:

try {
    $dbh = new PDO("mysql:host=localhost;dbname=xxx", 'xxx', 'xxx');
} catch (PDOException $exc) {
    header(HTTP_500_HEADER);
    die('Database connection failure');
}

在上面的目录中的 index.php 中,它包含很好,我可以访问它。我没有从函数访问 $dbh。

但是,当我尝试从这样的函数内部访问它时(这次它是不同目录中的不同文件):

require_once '../_/core.php';
var_dump($dbh);

$show_html = true;
$rm = $_SERVER['REQUEST_METHOD'];

function login_check() {
    var_dump($dbh);
}

第一个 var 转储显示它是一个 PDO 对象,但第二个显示它是空的。

4

3 回答 3

2

这取决于范围。阅读 global 关键字。

于 2012-07-22T12:32:59.023 回答
1

如果要访问函数中的全局变量,则需要将其(此处$dbh)定义为函数内部的全局变量(另请参见手册):

function login_check() {
    global $dbh;
    var_dump($dbh);
}
于 2012-07-22T12:33:06.317 回答
0
function login_check() {
    global $dbh;        
    var_dump($dbh);
}
于 2012-07-22T12:32:53.023 回答