如何在WHILE函数中使用IF语句

时间:2014-04-05 19:36:08

标签: php

我有以下分页:

<ul class="pagination">
  <li><a href="<?php if ($page_no > 1 ){echo $page_no - 1;} else{echo '#';} ?>">&laquo;</a></li>

    <?php 
    $i = 1;
    while ($i<=$pages):
    echo '<li><a href="'. URL . 'reviews?page=' . $i . '">' . $i . '</a></li>';
    $i++;
    endwhile;
    ?>

  <li><a href="<?php if ($page_no <= $pages){echo $page_no + 1;} ?>">&raquo;</a></li>
</ul>

这很好用。我现在想将class="active"添加到相关的<li>。我原以为这会起作用:

$i = 1;
while ($i<=$pages):
  $a = $i;
  echo '<li ';
  if ($a = $_GET['page']){echo 'class="active"';};
  echo '><a href="'. URL . 'reviews?page=' . $i . '">' . $i . '</a></li>';
$i++;
endwhile;

其中$_GET[page]是分页中的相关页码。但是,这会将所有<li>作为活动返回。我错过了什么?

2 个答案:

答案 0 :(得分:2)

只需将=添加到$a = $_GET['page'],这样就可以了:

$i = 1;
while ($i<=$pages):
  $a = $i;
  echo '<li ';
  if ($a == $_GET['page']){echo 'class="active"';}
  echo '><a href="'. URL . 'reviews?page=' . $i . '">' . $i . '</a></li>';
$i++;
endwhile;

同时删除;声明后的if

答案 1 :(得分:1)

这会给你想要的结果

$i = 1;
while ($i<=$pages):
  $a = $i;
  echo '<li ' . $a == $_GET['page'] ? 'class="active"': '';
  echo '><a href="'. URL . 'reviews?page=' . $i . '">' . $i . '</a></li>';
$i++;
endwhile;