(PHP 4, PHP 5, PHP 7, PHP 8)
Цикл do-while
очень похож на цикл while
, с тем отличием, что истинность выражения проверяется в конце итерации, а не в начале. Главное отличие от обычного цикла while
в том, что первая итерация цикла do-while
гарантированно выполнится (истинность выражения проверяется в конце итерации), тогда как она может не выполниться в обычном цикле while
(истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение false
, то выполнение цикла будет прервано сразу).
Есть только один вариант синтаксиса цикла do-while
:
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
В примере цикл будет выполнен ровно один раз, так как после первой итерации, когда проверяется истинность выражения, она будет вычислена как false
($i не больше 0) и выполнение цикла прекратится.
Опытные пользователи С могут быть знакомы с другим использованием цикла do-while
, которое позволяет остановить выполнение хода программы в середине блока, для этого нужно обернуть нужный блок кода вызовом do-while
(0) и использовать break
. Следующий фрагмент кода демонстрирует этот подход:
<?php
do {
if ($i < 5) {
echo "i ещё недостаточно велико";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "значение i уже подходит";
} while (0);
?>
Можно использовать оператор goto
вместо подобного "хака".