这是我正在做的事(php)
<?php
for($i = 0; $i <= 30; $i+2)
{
echo $i;
}
?>
它让我疯了,因为它不起作用[什么都不打印,浏览器一直试图加载]。但是,如果我将$i+2
更改为$i++
,它就可以正常工作,如果我将其更改为$i+1
,那么这也无效。
我的斗智斗勇。出了什么问题?
答案 0 :(得分: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值。
答案 1 :(得分:2)
您需要将$i+2
更改为$i = $i + 2
或$i += 2
。
$i++
表示$i += 1
。
for($i = 0; $i <= 30; $i += 2)
{
echo $i;
}
答案 2 :(得分:2)
每次迭代后,您需要为for循环提供一些递增/递减值。 $ i + 2不会改变i的值。所以在你的情况下发生的是for循环为每个连续的迭代找到相同的i值。因此永远不会满足终止条件。 for循环因此陷入无限循环。
更改:$i+1
至$i=$i+1
或$i+=1
。
$i++
实际上意味着$i=$i+1
。
答案 3 :(得分:1)
您必须更改为$i=$i+2
,因为$i++
等于$i=$i+1
。