我的PHP代码有什么问题?

时间:2011-05-25 05:26:39

标签: php

 <li><a class="<?php if($_GET['q']=='addons.html');echo 'current';?>" href="addons.html">test</a></li>

    <li><a class="<?php if($_GET['q']=='technicalsupport.html');echo 'current';?>" href="technicalsupport.html">example</a></li>


    <li><a class="<?php if($_GET['q']=='center.html');echo 'current';?>" href="center.html">center</a></li>

    <li><a class="<?php if($_GET['q']=='about.html');echo 'current';?>" href="about.html">about</a></li>

为什么那些都是当前页面添加“当前”?我想仅将class="current"添加到当前页面

4 个答案:

答案 0 :(得分:7)

;声明的结束)后删除if。即。

<?php if($_GET['q']=='about.html');echo 'current';?>

...变为:

<?php if($_GET['q']=='about.html') echo 'current';?>

答案 1 :(得分:1)

我同意bradley.ayers,但是我也会将整个类标记包含在If条件中,就像这样。

<a <?php if($_GET['q']=='addons.html') echo 'class="current" ';?>href="addons.html">

这样条件为true的所有锚点最终都不会包含空的class=""标记

答案 2 :(得分:1)

首先,检查$ _GET ['q']是否存在,这样你就不会收到“未定义的索引”通知。

<li>
    <a href="addons.html" <?php echo (isset($_GET['q']) && $_GET['q'] == 'addons.html' ? 'class="current"' : ''); ?>>test</a>
</li>

答案 3 :(得分:1)

我会这样做有点干净:

<?php echo ($_GET['q']=='about.html') ? 'current': ''; ?>

甚至将其优化为函数:

<?php
function set_current($page){
   return ($_GET['q'] == $page) ? 'current': '';
}
?>

然后你的线条变得更干净了:

<?php echo set_current('about.html'); ?>