如何在switch语句中插入Class

时间:2013-09-01 08:44:51

标签: php

在bootstrap 3中,我们将此<li>课程设置为有效,以便显示导航栏上突出显示的当前页面

<li class="active">
     <a href="linkaddress.html">Link</a>
</li>

问题是当您通过包含includes/header.php;在所有网页上添加菜单时。我无法弄清楚如何在$actual_link上组合一个switch语句并带回某种调用来在正确的位置插入活动的类。这是我迄今为止的尝试,我老实说,因为我觉得有更好的方法。我怎样才能将li类放到active这个开关

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$HTTPHost = $_SERVER[HTTP_HOST];
switch($actual_link)
{
case "http://{$HTTPHost}/index.php" || 
    "http://{$_SERVER[HTTP_HOST]}/admin.php?edit_home":

//setToActive
    break;
case "http://{$HTTPHost}/warrants.php" || 
    "http://{$_SERVER[HTTP_HOST]}/admin.php?edit_warrants":
 //setToActive     
    break;
case "http://{$HTTPHost}/faq.php" || 
    "http://{$_SERVER[HTTP_HOST]}/admin.php?edit_faq":
 //setToActive 
    break;
case "http://{$HTTPHost}/aboutus.php" || 
    "http://{$_SERVER[HTTP_HOST]}/admin.php?edit_aboutus":
  //setToActive  
    break;
}

&GT;

2 个答案:

答案 0 :(得分:0)

在包含标题之前的页面中设置一个变量来指示当前页面。例如,在index页面中:

$active = 'index';
include('includes/header.php');

现在在header.php创建链接时使用类似

的内容
<?php global $active ?>
<li <?php if( isset($active) && $active == 'index') echo 'class="active"'; ?>>
     <a href="index.php">Index</a>
</li>

答案 1 :(得分:0)

您不能在像

这样的case语句中指定多个表达式
case "http://{$HTTPHost}/index.php" || 
    "http://{$_SERVER[HTTP_HOST]}/admin.php?edit_home":

上述表达式的评估结果为true

使用以下synatax

case "http://{$HTTPHost}/index.php":
case "http://{$_SERVER[HTTP_HOST]}/admin.php?edit_home":
     //statements 
     break;