【发布时间】:2014-02-23 05:22:19
【问题描述】:
我这里有这段代码:
<ul>
<li<?php if ($page == 'home') echo ' class="active' ?>><a href="index.php">Home</a></li>
<li<?php if ($page == 'contact') echo ' class="active' ?>><a href="pages/contact.php">Contact Us</a></li>
<li<?php if ($page == 'services') echo ' class="active' ?>><a href="pages/services.php">Services</a></li>
<li<?php if ($page == 'employees') echo ' class="active' ?>><a href="pages/employees.php">Employees</a></li>
<li<?php if ($page == 'dashboard') echo ' class="active' ?>><a href="pages/dashboard.php">Dashboard</a></li>
</ul>
但我想重构它以消除一些重复。我正在使用数组,并把它放在这样的地方:
$pages = array(
"index.php" => "Home",
"contact.php" => "Contact Us",
"services.php" => "services",
"employees.php" => "Employees",
"dashboard.php" => "Dashboard");
foreach ($pages as $item) {
if (isset($_GET['page']) && $_GET['page'] == $item) {
echo 'class="active" ?><a href="' . array_keys($item) . '"> ' . array_values($item) . '</a></li>';
} else {
echo '<a href="' . array_keys($item) . '"> " . ' . array_values($item) . '</a></li>';}
我似乎无法让它工作。我希望它将最后一行放在一起,以便我在该页面上而不是其他情况下向我的导航栏标签添加一个活动类。有没有合理的方法可以做到这一点,这是一种好的做法吗?
【问题讨论】:
-
使用
<?php foreach (...):?>和<?php endforeach; ?>怎么样?
标签: php arrays web iteration navbar