2010-11-25 3 views
11

Я видел этот код, и я понятия не имею, что это значит.Что означает while (true) {mean in PHP?

while(true){ 
    echo "Hello world"; 
} 

Я знаю, что такое цикл while, но что означает while (true)? Сколько раз он будет выполнен. Разве это не бесконечный цикл?

+0

Да, это бесконечный цикл. – Coquevas

ответ

9

Да, это бесконечный цикл.

Явный версия будет

while (true == true) 
+8

За исключением очень малых значений 'true'. –

+0

Да, истина всегда будет оставаться верной и не изменяет состояние, чтобы ваша петля никогда не кончилась. – Scoop

+2

@Ignacio вы имеете в виду подписанный против неподписанного 'истина'. Они приходят в PHP 7, мне говорят –

2

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

14

Хотя это бесконечный цикл, вы можете выйти из него, используя break. Это полезно, когда вы ожидаете, что что-то произойдет, но вы точно не знаете количество итераций, которые доставят вас туда.

4

Это действительно (как уже было сказано) бесконечный цикл и обычно содержит код, который заканчивается с помощью оператора break// exit.

Многие демоны используют этот способ, когда процесс PHP продолжает работать до тех пор, пока не изменится какая-либо внешняя ситуация. (Т.е. убивая его, удалив .pid файл/отправки HUP и т.д. и т.п.)

1

Пожалуйста referes к документации PHP в настоящее время: http://www.w3schools.com/php/php_looping.asp

в то время как цикл выполняется блок кода до тех пор, как указано условие истинно.

while (expression) { 
    statement(s) 
} 

в то время как оператор вычисляет выражение, которое должно возвращать логическое значение. Если выражение принимает значение true, оператор while выполняет оператор (ы) в блоке while. Оператор while продолжает тестирование выражения и выполняет его блок , пока выражение не примет значение false.

Как следствие, код:

while (true) { 
    statement(s) 
} 

будет выполнять операторы до бесконечности, потому что «истина» является логическое выражение, которое, как вы можете ожидать, всегда верно.

Как уже упоминалось на @ elzo-valugi, этот цикл может быть прерван с помощью перерыв (или выход):

while (true) { 
    statement(s) 
    if (condition) { 
     break; 
    } 
} 
+0

Ops ... фиксированный. благодаря –

Смежные вопросы