我有以下代码生成一个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对象,但第二个显示它是空的。
答案 0 :(得分:2)
这是scope。阅读全球关键字。
答案 1 :(得分:1)
如果要访问函数中的全局变量,则需要将其定义为函数中的全局变量(此处为$dbh
)(另请参阅the manual):
function login_check() {
global $dbh;
var_dump($dbh);
}
答案 2 :(得分:0)
function login_check() {
global $dbh;
var_dump($dbh);
}