Что такое синтаксис for (;;) "в этом коде?

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

for(;;) является C-идиомой, которая означает «делать навсегда», бесконечный цикл. Этот цикл будет завершен только в том случае, если либо оператор die срабатывает (яростно), либо причина установлена ​​на THROTTLE_CAUSE_NONE (не так сильно).

Это цикл цикла без предварительной настройки, без каких-либо условий, а не с пост-итерационными командами, фактически так же, как while true (псевдокод).

Это бесконечный цикл.

for(;;) – это в основном бесконечный цикл, не более 🙂

Тьфу.

Это допустимый синтаксис, он создает бесконечный цикл. Но это уродливо.

Гораздо более красивый способ сделать это

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

Это действительно. Он создает бесконечный цикл, который в этом случае будет разбит, когда / если выполняется оператор break, то есть if($cause == THROTTLE_CAUSE_NONE)

Цикл for состоит из четырех частей:

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

В вашем цикле нет ни одного из них, поэтому без условия выхода он будет запускаться вечно до тех пор, пока он не попадет в предложение «break»:

 if($cause == THROTTLE_CAUSE_NONE) break; 

Эквивалентом будет:

 while(True) { ... }