我在工作中查看了一些代码,发现了以前没有遇到过的东西:
for (; ;)
{
// Some code here
break;
}
我们一直调用包含这个的函数,我最近才进入它,看看它是如何工作的。为什么这有效并且在某处记录?
似乎在这种情况下,while循环更合适......
答案 0 :(得分:7)
它与while(true)
基本相同。它没有任何初始化,在迭代之间不会改变任何东西,并且在没有任何错误的情况下,假设条件为真。
答案 1 :(得分:3)
这是一个无限循环。
通常情况下你会有:
for ($i=0; $i<10; $i=$i+1)
但你可以省略任何部分。
这些都是有效的:
for ($i=0; ; $i=$i+1)
for (; $i<10; $i=$i+1)
for (; $i<10;)
但是,如果省略第二部分,则没有退出循环的条件。如果您不知道要运行循环的次数,可以使用此方法。在这种情况下,您可以使用break
指令退出循环
for (;;)
{
// some code
if (some condition)
break;
}
请注意,如果您未放置break
页面,则会卡住并无限期运行
答案 2 :(得分:1)
第一个空白语句在开头执行。
第二个空白表达式(确定是否退出循环)隐式评估为TRUE:
http://php.net/manual/en/control-structures.for.php
每次迭代后执行第三个空白语句。
因此,任何踢出循环的条件都需要在循环中。