这段代码中的“for(;;)”语法是什么?

时间:2010-10-27 09:22:04

标签: php syntax for-loop

   for(;;)
   {
     if(!$monitor->Throttle($cause))
       die('Fatal error: '.$monitor->error);

     if($cause == THROTTLE_CAUSE_NONE)
       break;

     sleep(60);
   }

我是初学者php开发人员。那么如何阅读以前代码中的“for”语法。它有效吗?

我是从http://www.phpclasses.org/blog/post/132-Accelerate-Page-Accesses-Throttling-Background-Tasks-Unusual-Site-Speedup-Techniques-Part-2.html

获得的

6 个答案:

答案 0 :(得分:13)

for(;;)是一个C语言,意思是“永远做”,一个无限循环。只有当die语句触发(猛烈地)或者原因设置为THROTTLE_CAUSE_NONE(不那么剧烈)时,此循环才会退出。

这是一个for循环,没有预先设置,没有条件,也没有迭代后命令,实际上与while true(伪代码)相同。

答案 1 :(得分:7)

那是一个永远的循环。

答案 2 :(得分:4)

for(;;)基本上是一个无限循环,仅此而已:)

答案 3 :(得分:4)

呃。

它是有效的语法,它创建一个无限循环。但它太丑了。

更美妙的方法是

 while ($cause = $monitor->Throttle($cause) != THROTTLE_CAUSE_NONE)
 {
    if(!$cause)
     die('Fatal error: '.$monitor->error);

    sleep(60);   
 }

答案 4 :(得分:3)

有效。它会创建一个无限循环,在这种情况下,将在/如果执行break语句时将其中断,即if($cause == THROTTLE_CAUSE_NONE)

答案 5 :(得分:2)

for循环有四个部分:

for(initialization; exit condition; step) { body; }

你的循环没有它们,所以如果没有退出条件,它将永远运行直到它达到'break'句子:

if($cause == THROTTLE_CAUSE_NONE)
  break;

等效的是:

while(True) { ... }