我有一个文件Page.php
<?php
$title = "1";
$menu[0] = "1";
$menu[1] = "2";
function mainNav($menu) {
foreach ($menu as $value){
if ($title == $value){
$active = "active";
}
else {
$active = " ";
}
echo $active ;
return $active;
}
}
include "header.php";
和一个文件header.php
<li class="mainNav <?php mainNav(); ?>" style="z-index:8">
<a href="http://www.com"><?php echo $menu[7]; ?></a></li>
如果$title == $menu[x]
,我希望header.php
包含li class="mainNav active"
。否则为li class="mainNav"
。遇到了一些困难,无法解决。
- 您正在尝试在没有任何参数的情况下调用函数
mainNav()
。但是您用参数$menu
声明了函数。因此,php无法在没有任何参数的情况下找到函数mainNav()
- 在函数
mainNav($menu)
中,您正试图访问尚未在此函数中定义的变量$title
。因此,如果您想访问可验证的$title
,您应该使用$this->title
- 函数在循环的第一次迭代后返回值。我认为,这是错误的。使用函数in_array而不是循环
如果您只想将类添加为菜单的"活动"类,那么您可以使用以下代码:
function mainNav($title) {
$menu = array("Menu1","Menu2","Menu3");
$html = '';
foreach ($menu as $value){
if ($title == $value){
$html .= '<li class="mainNav active" style="z-index:8">'.$value.'</li>';
} else {
$html .= '<li class="mainNav" style="z-index:8">'.$value.'</li>';
}
}
return $html;
}
在header.php 中像这样的函数中传递活动菜单
<ul><?php echo mainNav('Menu1'); ?></ul>