0

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

代码在 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

4 回答 4

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');
};
于 2013-10-15T00:43:03.817 回答
0

您的代码首先存在很多问题:

if($page_id){ 

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

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

*if 和 else 语句末尾不需要分号 (;)

于 2013-10-15T00:43:51.440 回答
0

我只能猜测您想要实现的目标。

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

您可能想使用:

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');
于 2013-10-15T00:48:38.130 回答
0

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

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

我还假设您不是要使用相同的参数。我假设您将 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');

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

于 2013-10-15T00:49:40.227 回答