我制作了两个不同的页脚,将它们包含在不同的文件中。
代码在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';
但是在所有页面中,第一个页脚被包含两次而第二个页脚从未出现。 如何以正确的方式编写代码?
答案 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');
这可以防止重复包含,但如果您希望我们为您提供帮助,您应该发布更多信息或整个代码块。