我在工作中查看了一些代码,发现了一些我以前没有遇到过的东西:
for (; ;)
{
// Some code here
break;
}
我们一直调用包含它的函数,我最近才进去看看它是如何工作的。为什么这行得通,它是否记录在某处?
在这种情况下,似乎while循环更合适......
它本质上与while(true)
. 它没有任何初始化,在迭代之间没有任何改变,并且在没有任何东西使它为假的情况下,假设条件为真。
这是一个无限循环。
通常你会有类似的东西:
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
页面,则会卡住并无限期运行
第一个空白语句在开头执行。
第二个空白表达式(确定是否退出循环)隐式计算为 TRUE:
http://php.net/manual/en/control-structures.for.php
第三个空白语句在每次迭代后执行。
因此,任何退出循环的条件都需要在循环本身中。