我发现难以访问包含文件中定义的变量。
我的包含文件存在于根目录中,它有一个变量$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"])
作为替代方案。
答案 0 :(得分:1)
localhost
不是绝对路径。 PHP读取计算机上的实际目录,而不是URL中的目录。
试试echo realpath($_SERVER["DOCUMENT_ROOT"])
,你会明白我的意思。