我的包含文件的位置似乎会影响所包含文件中的全局变量。情况很复杂。见下文:
/config.php
<?php
$domain = 'localhost';
$database = 'db';
?>
/functions.php
<?php
require_once("config.php");
function getDatabase() {
global $database;
return $database;
}
?>
/endpoint.php
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/functions.php");
print(getDatabase());
?>
/api/endpoint.php
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/functions.php");
print(getDatabase());
?>
当我导航到/endpoint.php
时,会打印出db
。当我导航到/api/endpoint.php
时,没有任何内容打印出来。有人可以解释一下这种行为吗?
BTW:我正在使用XAMPP 5.5.19和PHP 5.5
答案 0 :(得分:2)
这是因为在第二种情况下,functions.php
希望在当前路径/api/
中包含config.php。
另外,为什么global $database
声明,如果你要打电话给getDatabase()
呢?