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


including different files based on if/else php

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

代码位于索引.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';

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

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

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

我还假设您无意使用相同的参数。我假设您将页面数组作为变量。并且您将页面 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_once('inc/footer_de.php');

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

你的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');
};

首先,您的代码上有很多问题:

if($page_id){ 

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

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

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

我只能猜测你想要实现什么。

您的代码只是用数组覆盖 $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');