PHP:使用绝对路径在include / require文件中定义的变量不可访问

时间:2014-03-17 11:06:27

标签: php include require absolute-path

我发现难以访问包含文件中定义的变量。

我的包含文件存在于根目录中,它有一个变量$x

localhost/dir_name/include.php

我将include.php文件包含在子目录中的file.php中:

localhost/dir_name/sub_directory/file.php

但每次,file.php都会给出错误undefined variable $x

奇怪的是,当我使用相对路径来包含include.php时,它完美无缺。像这样:

include '../include.php';

此外,它在使用realpath($_SERVER['DOCUMENT_ROOT'])时有效。像这样:

include $_SERVER['DOCUMENT_ROOT'].'\dir_name\include.php'

但它永远不会适用于绝对路径。我也尝试将变量设为全局,但对我没有帮助,include.php文件也正确包含在内。除了这个未定义的变量之外,它没有给我任何其他错误。

在询问之前,我尝试在SO上找到它,但无法找到此错误的答案。

我目前正在使用realpath($_SERVER["DOCUMENT_ROOT"])作为替代方案。

1 个答案:

答案 0 :(得分:1)

localhost不是绝对路径。 PHP读取计算机上的实际目录,而不是URL中的目录。

试试echo realpath($_SERVER["DOCUMENT_ROOT"]),你会明白我的意思。