缩短活动页面链接的 if else 语句



我正在尝试使用以下代码创建活动页面链接。但是随着我将来添加更多页面,如果不是的话,这将更多。有没有办法让它更短,否则?

<?php  
$urlarray=explode('/', $_SERVER["REQUEST_URI"]);
$pageActive = end($urlarray); 
$dashClass ='';  
$userClass = '';
$settingClass = '';
$activePage = array(
"dashboard",
"settings",
"users"
);
if(in_array($pageActive, $activePage)) { 
if($pageActive == 'users'){
$userClass = 'class="active"';
}else if($pageActive == 'dashboard'){
$dashClass = 'class="active"';
}else if($pageActive == 'settings'){
$settingClass = 'class="active"';
}
...
...
...
} 
?>

这里的回显html

<ul>
<li <?php echo $dashClass;?>></li>
<li <?php echo $userClass;?>></li>
<li <?php echo $settingClass;?>></li> 
</ul> 

使用开关

switch($pageActive) {
// Users
case 'users':
$userClass = 'class="active"'
break;
// Dash
case 'dashboard':
$dashClass = 'class="active"'
break;
//something else
case 'something-else':
$somethingElseClass = 'class="blah"'
break;
// Default fallback one
default:
$userClass = 'class="active"';
break;
}

编辑你可以

<li <?php if($pageActive === 'user'){ echo 'class="active"'; } ?>User</li>
<li <?php if($pageActive === 'dashboard'){ echo 'class="active"'; } ?>>Dashboard</li>

它们已经是一个带有菜单项列表的数组,名称为"activePage"。您可以尝试以下代码。

<?php
$urlarray=explode('/', $_SERVER["REQUEST_URI"]);
$pageActive = end($urlarray); 
$activePage = array('dashboard', 'settings', 'users');
?>
<ul>
<?php
foreach($activePage as $_key => $_value) {
$menuSelect = '';
if( in_array($pageActive, $activePage) ) {
$menuSelect = 'class="active"';
}
?><li <?php echo $menuSelect; ?>><?php echo $_value; ?></li><?php
}
?>
</ul>

最新更新