我有一个博客,它由几个不同的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之外还有其他原因导致了问题,例如不理解作用域规则。