我有下面的代码,使一个PDO对象,这是在core.php中的末尾:PDO不从在功能包含的文件访问
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);
}
第一个变种转储表明它是一个PDO对象,但第二个显示它是空的。
$胸径在全球范围内。在函数内部,所有变量都是函数的局部变量(因此$ dbh是空的)。如果你想使用一个函数内全局范围内的变量,你必须首先使它们成为全局变量,如Jerzy的答案所示。 – Parziphal 2012-07-22 12:35:45