for循环不会继续

时间:2011-12-01 10:50:10

标签: php variables if-statement for-loop

我这里有一个代码,应该可以继续到670

$pages = 670;
$part1 = 16;
$part2 = 31;
$part3 = 99;    
for ($i=1; $i<=$pages; $i++){
    if ($i == 1){
       echo "1st part, ";
    }elseif ($i == $part1){
       $pages = $part2 - $part1;
       echo $pages . ", ";
       $pages = 0;
    }elseif ($i == $part2){
       $pages = $part3 - $part2;
       echo $pages . ", ";
       $pages = 0;
    }
  echo "<strong>" . $i . "</strong>" . ", ";
}

但是当我打开php时,结果将是:

  • 第1部分 1 2 3 4 5 6 < / strong>, 7 8 9 10 11 12 13 14 15 ,15, 16

问题是什么,所以我的for循环会继续?

*注意:part2 - part1 = 15,part 3 - part2 = 68。

5 个答案:

答案 0 :(得分:3)

行:$pages = 0;是问题所在。更改变量名称。

答案 1 :(得分:3)

$i点击16后,您设置$pages = 0;,因此条件$i <= $pages变为false并且循环停止。

答案 2 :(得分:1)

你改变了

$pages = 0; 

这就是为什么它不会继续下去,因为它不再是670了。

答案 3 :(得分:0)

如果您检查$i == $part1

,则在第一个

示例:

$i = 16;

elseif($i == $part1) // true
{
    $pages = $part2 - $part1; // $pages = 15 -> for loop = for($i <= $pages) will break cause $i = 16
    echo $pages . ", ";
    $pages = 0; // -> again forloop, $i is bigger then pages cause pages = 0;
}

查看您的变量,也许您可​​以向我们解释您想要做什么,然后我们可以帮助您解决它。

答案 4 :(得分:0)

你到底想要达到什么目的?此时,当您执行第一个elseif部分,即$ i == $ part1时,将$ pages重置为0.因此,您打印非粗体15,然后以粗体显示值16.这意味着此时$ i == 16和$ pages == 0.因此你将退出循环;条件$ i&lt; = $ pages将评估为false。

如果您只想数到670,为什么不删除两者,$ pages = $ part2 - $ part1;和$ pages = 0;声明?你可以使用echo($ part2 - $ part1)。 “,”;直接

同样适用于第二个elseif块