PHP将文件中的var包含在一个文件中,然后将该文件包含在其他文件中


PHP include var from file in a file that is then included in other files

我有一个博客,它由几个不同的php文件(页眉、页脚、main等)组成。我想创建一个名为adv.php的php文件,其中包含一个需要在所有其他php文件中检索的var。我想只在header.php中包含adv.php文件,并确保var在footer.php、main.php等中仍然有效。

我试过了,即使是全局变量,这似乎也不起作用。我该怎么解决这个问题?同样,我只想在header.php中包含一次adv.php文件,而不是在每个php文件中都包含。

编辑

以下是代码的简化版本,仅包含相关部分:

adv.php

<?php $ad300_top_right_index = "RTB"; ?>

header.php

<?php include_once('adv.php');  ?>

main.php

<?php if  ( $ad300_top_right_index == "RTB" ) { ?>
show code here
<?php } else { ?>
show some other code here
<?php } ?>

关于包含:这是一个Wordpress模板,生成的页面将包括header.php和main.php,header.php包括adv.php。当然,在我尝试在main.php中使用var之前,adv.php会被包含在内。

您还没有显示任何代码,但没有理由让一个文件中包含的var在另一个中不可见:

a.php

<?php
$x = 7;

b.php

<?php
echo $x, "'n";

z.php

<?php
echo "#1 - startup'n";
echo $x, "'n";
echo "#2 - including a'n";
include('a.php');
echo "#3 - included'n";
echo $x, "'n";
echo "#4 - including b'n";
include('b.php');
echo "#5 - included'n";

运行z.php的输出:

#1 - startup
PHP Notice:  Undefined variable: x in /home/marc/z.php on line 3
#2 - including a
#3 - included
7
#4 - including b
7
#5 - included

注意,7是按预期输出的。

如果你没有得到你的var,那么除了php之外还有其他原因导致了问题,例如不理解作用域规则。