我正在使用一个函数来为我吐出主菜单和子菜单。基本上我给它一个页面ID,它给我菜单,菜单项通过CSS正确突出显示。
我要问的是:我如何改进此代码(以及其他类似的代码)?降低代码行数并减少代码重复次数?我知道Switch语句比旧的if / else条件语句更快,但是如果我使用开关,我不知道如何突出显示我的HTML菜单项。
css类(class =“sub_active_link”)负责突出显示当前菜单项。未突出显示的链接是(class =“sub_link”)。
我不需要重写代码,只需要这样的情况的概念或最佳实践。
非常感谢任何想法或方向,感谢帮助我成为更完整的程序员。
function top_menu_logged_in_sub_menu($user, $page ='main')
{
$sub_menu_html = '<div id="sub_nav"><ul>';
if($page == 'main'){
$sub_menu_html.= '
<li><img src="images/nav_2_lev_tab_Hi_L.gif" alt=""/></li>
<li class="sub_link_active"><span><a href="main.php">My Admin</a></span></li>
<li><img src="images/nav_2_lev_tab_Hi_R.gif" alt="" /></li>
';
}
else{
$sub_menu_html.= '
<li><img src="images/nav_2_lev_tab_L.gif" width="8" height="26" /></li>
<li class="sub_link"><span><a href="main.php">My Admin</a></span></li>
<li ><img src="images/nav_2_lev_tab_R.gif" alt="" /></li>
';
}
if($page == 'myProjects'){
$sub_menu_html.= '
<li ><img src="images/nav_2_lev_tab_Hi_L.gif" alt="" /></li>
<li class="sub_link_active"><span><a href="myProjects.php">My Projects</a></span></li>
<li><img src="images/nav_2_lev_tab_Hi_R.gif" alt="" /></li>
';
}
else{
$sub_menu_html.= '
<li><img src="images/nav_2_lev_tab_L.gif" alt="" /></li>
<li class="sub_link"><span><a href="myProjects.php">My Projects</a></span></li>
<li><img src="images/nav_2_lev_tab_R.gif" alt="" /></li>
';
}
if($page == 'insertProject'){
$sub_menu_html.= '
<li><img src="images/nav_2_lev_tab_Hi_L.gif" alt="" /></li>
<li class="sub_link_active" ><span><a href="insertProject.php">Post a Project</a></span></li>
<li><img src="images/nav_2_lev_tab_Hi_R.gif" alt="" /></li>
';
}
else{
$sub_menu_html.= '
<li><img src="images/nav_2_lev_tab_L.gif" /></li>
<li class="sub_link"><span><a href="insertProject.php">Post a Project</a></span></li>
<li><img src="images/nav_2_lev_tab_R.gif" /></li>
';
}
if($page == 'myAccount'){
$sub_menu_html.= '
<li><img src="images/nav_2_lev_tab_Hi_L.gif" /></li>
<li class="sub_link_active" ><span><a href="myAccount.php">My Account</a></span></li>
<li><img src="images/nav_2_lev_tab_Hi_R.gif" /></li>
';
}
else{
$sub_menu_html.= '
<li><img src="images/nav_2_lev_tab_L.gif" /></li>
<li class="sub_link"><span><a href="myAccount.php">My Account</a></span></li>
<li><img src="images/nav_2_lev_tab_R.gif" /></li>
';
}
$sub_menu_html.= '
</ul>
<div class="user_id">
Welcome, '.$user.'! <span class="sign_out"><a href="http://www.example.org/login.php?action=logout">Sign Out</a></span>
</div>
</div>
';
return $sub_menu_html;
}
答案 0 :(得分:0)
您可以使用数组,如下所示:
$pages=array('myAccount'=>'My Account', ...);
然后使用foreach遍历它,将键与$ page变量进行比较。 在html代码中放了一些三元运算符:
'<li><img src="images/nav_2_lev_tab_'.($page==$key?'Hi_':'').'L.gif" /></li>'
这样您可以使用$ pages数组的值作为链接文本。
你会发现其余的。