PHP无限循环,未知原因

时间:2013-04-22 11:01:16

标签: php while-loop infinite

<?php
$i=1;
while ($i<=$totalpages) {
    if (($i>=($page-5) && $i<=($page+5) && $i<$totalpages) || $i==1 || ($i+1>$totalpages)) {

        echo "<td><a href=\"search.php?page=$i\">";
        if ($i=$page) {
        echo "<strong>  $i  </strong>";
        }
        if ($i!=$page) {
        echo "  $i  ";
        }
        echo "</a></td>";
        }
    $i++;
    }

?>

尝试构建一个网页,在页面底部输出一些搜索值,但是我不断得到一个无限循环。我不知道是什么导致了它,并希望有人能够深入了解手头的问题。

5 个答案:

答案 0 :(得分:2)

您的if条件有问题

更改

$i =1 

$i==1

答案 1 :(得分:1)

你有很多地方可以重置$ i,无意中我假设

$i=1

$i=$page

将其替换为==

答案 2 :(得分:0)

<?php
        $i=1;
        while ($i<=$totalpages) {
            if (($i>=($page-5) && $i<=($page+5) && $i<$totalpages) || $i == 1|| ($i+1>$totalpages)) {

                echo "<td><a href=\"search.php?page=$i\">";
                if ($i == $page) {
                echo "<strong>  $i  </strong>";
                }
                if ($i!=$page) {
                echo "  $i  ";
                }
                echo "</a></td>";
                }
            $i++;
            }
?>

第1和第2条情况的变化。
1)$ i == 1
2)$ i == $ page

答案 3 :(得分:0)

为什么使用for循环无法实现这一点?虽然循环总是存在风险并且容易导致问题,如果存在导致永远循环的情况。

例如。

for ($i = 0; $i<=$totalpages; $i++){
 // do something
}

答案 4 :(得分:0)

条件中存在一些问题

首先:

  

|| $ I = 1 ||

总是回归真实。 更改

  

|| $ I == 1 ||

第二:adobe的相同案例

  

if($ i = $ page)// Allways返回try是赋值操作

更改为:

  

if($ i == $ page)