-1

这是我正在做的事情(php)

<?php

for($i = 0; $i <= 30; $i+2)
{
  echo $i;
}
?>

它让我发疯,因为它不起作用[什么都不打印,浏览器一直试图加载]。但是,如果我更改$i+2$i++,它可以工作,如果我将其更改为$i+1,那也不起作用。

我疯了。出了什么问题?

4

4 回答 4

4

它让我发疯,因为它不起作用[什么都不打印,浏览器一直试图加载]。但是,如果我更改$i+2$i++,它可以工作,如果我将其更改为$i+1,那也不起作用。

$i++相当于$i = $i + 1,注意赋值运算符=,它不存在这里$i + 2添加但不更新...

因为$i永远不会更新,所以你有一个无限循环,脚本可能会达到允许的处理时间并终止。

http://php.net/manual/en/function.set-time-limit.php

设置允许脚本运行的秒数。如果达到此值,脚本将返回致命错误。默认限制为 30 秒,如果存在,则为 php.ini 中定义的 max_execution_time 值。

于 2012-06-26T05:01:47.043 回答
2

您需要更改$i+2$i = $i + 2$i += 2$i++意味着$i += 1

for($i = 0; $i <= 30; $i += 2)
{
  echo $i;
}
于 2012-06-26T05:00:26.813 回答
2

您需要在每次迭代后为 for 循环提供一些增量/减量值。$i+2 不会改变 i 的值。因此,在您的情况下发生的是 for 循环为每次连续迭代找到相同的 i 值。因此,永远不会满足终止条件。因此 for 循环陷入了无限循环。

更改:$i+1或。$i=$i+1$i+=1

$i++实际上的意思$i=$i+1

于 2012-06-26T06:28:25.953 回答
1

您必须更改为$i=$i+2,因为$i++等于$i=$i+1

于 2012-06-26T05:04:33.777 回答