包括基于if / else php的不同文件

时间:2013-10-15 00:39:02

标签: php if-statement include

我制作了两个不同的页脚,将它们包含在不同的文件中。

代码在index.php中,而其他文件则从索引页面动态包含。

$page_id = array('1','2','3','4','5','6','7','8','9','10','11');
if ( $page_id ) {
   include('inc/footer_de.php');
} else {
   include('inc/footer_en.php');
};

在每个页面上,我已使用例如

指定了页面的值
 $page_id = '10';

但是在所有页面中,第一个页脚被包含两次而第二个页脚从未出现。 如何以正确的方式编写代码?

4 个答案:

答案 0 :(得分:0)

你的if语句询问“变量$ page_id是否存在”,它是(作为一个数组),所以你总是得到相同的footer_de.php。

我认为你想要做的是检查$ page_id是否在数组中,在这种情况下你会做...

$page_id_array = array('1','2','3','4','5','6','7','8','9','10','11');
if(in_array($page_id,$page_id_array){
    include('inc/footer_de.php');
}else{
    include('inc/footer_en.php');
};

答案 1 :(得分:0)

您的代码开头有很多问题:

if($page_id){ 

*这将永远是真的,因为它是一个值而不是真正的条件/比较 你可能想要使用in_array(检查数组中是否存在页面)或$ page_id == 10(如果你正在寻找特定的数字/ pageid)

include('inc/footer_en.php');
};

* if和else语句最后不需要分号(;)

答案 2 :(得分:0)

我只能猜到你想要达到的目标。

您的代码只是用数组覆盖了$ page_id变量,因此if ($page_id)只检查数组的计算结果是否为true。我猜两次包含它的原因是在你粘贴的代码块之外。

您可能想要使用:

http://php.net/manual/en/function.in-array.php

$page_id = '10';
...
$de_pages = array('1','2','3','4','5','6','7','8','9','10','11');
if (in_array($page_id, $de_pages))
    include('inc/footer_de.php');
else
    include('inc/footer_en.php');

答案 3 :(得分:0)

首先,我不知道你为什么要在数组中存储字符串值,而不是数字,但我会选择你拥有的。

如果我理解正确,如果数组中存在页面ID,那么您希望包含第一个页脚,否则包括第二个页脚。如果是这种情况,这是我的答案(使用in_array php function

我还假设你不是要使用相同的参数。我假设你将pages数组作为变量。并且您将页面ID作为不同的变量(对于每个页面)。

$pagesArray = array('1','2','3','4','5','6','7','8','9','10','11');
if (in_array($page_id, $pagesArray)) {
     include('inc/footer_de.php');
}
else{
    include('inc/footer_en.php');
}

确保删除最后一个';'来自你的代码。

您还声明页脚包含两次。没有给出适当的解释,除了你可能在你发布的代码块之外的另一个时间包括它。 只有在您可以使用时才包含它: include_once而不是include 例如:

include_once('inc/footer_de.php');

这可以防止重复包含,但如果您希望我们为您提供帮助,您应该发布更多信息或整个代码块。