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


How to use an IF statement in a WHILE function

我有以下分页:

<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>

这工作正常。我现在想在相关<li>中添加class="active"。我本以为这会起作用:

$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>返回为活动状态。我错过了什么?

只需在$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 语句后面的;

这将给出您想要的结果

$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;