Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP define值在include文件中丢失_Php_Variables - Fatal编程技术网

PHP define值在include文件中丢失

PHP define值在include文件中丢失,php,variables,Php,Variables,我有一个config.php文件,其中有一行: define(“home\u dir”,“soft06/site\u name”) 在index.php文件中,我有: include_once ("config.php") ... some html code .... include_once (home_dir."/footer.php") 这很有效。 但是,如果我在footer.php中写下这行: echo("home_dir=".home_dir); 我得到: Notice: Us

我有一个config.php文件,其中有一行:

define(“home\u dir”,“soft06/site\u name”)

在index.php文件中,我有:

include_once ("config.php")
... some html code ....
include_once (home_dir."/footer.php")
这很有效。 但是,如果我在footer.php中写下这行:

echo("home_dir=".home_dir);
我得到:

Notice:  Use of undefined constant home_dir - assumed 'home_dir' in <b>D:\xampp\htdocs\footer.php on line 3
home_dir=home_dir
注意:在第3行的D:\xampp\htdocs\footer.php中使用未定义的常量home\u dir-假定为'home\u dir'
home\u dir=home\u dir
但如果我选择像这样包含footer.php:
include\u once(“footer.php”)
而不是
include\u once(home\u dir./footer.php”)
它很好用

在我看来,如果在include_once函数中使用常量home_dir,我将丢失include文件中的home_dir值

任何帮助都将不胜感激。

那么您呢

include_once (home_dir."/footer.php")
正在尝试通过http:^)包含文件,并且在包含之前已执行该文件。因此,在另一个http请求中运行footer.php,并且没有定义home_dir


您必须使用本地路径进行包含。

change
include\u once(home\u dir./footer.php”)
in
include\u once(home\u dir./footer.php”)
或更准确地说,
include\u once(home\u dir.dir.footer.php)
。很抱歉,它是include\u once(home\u dir./footer.php)我只是忘了在上面的问题中键入它。我已经在问题中做了更正。你使用的是什么版本的PHP?如果可能,尽量不要使用相对路径。你可以在5.3 +中使用<代码>、第二、第二个常数来确保你的Hoang-dir路径指向正确的位置。让我们不要把它看成是一个路径问题,而是让我们考虑一个简单字符串的定义值。因为问题不在于包含文件(include_once可以完美地工作),而是为什么home_dir的值在包含的文件中丢失了?在我看来,这似乎是正确的答案。谢谢你的帮助。