我制作了 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');