(PHP 4, PHP 5, PHP 7, PHP 8)
do-while
循環(huán)和 while
循環(huán)非常相似,區(qū)別在于表達式的值是在每次循環(huán)結束時檢查而不是開始時。和一般的
while
循環(huán)主要的區(qū)別是 do-while
的循環(huán)語句保證會執(zhí)行一次(表達式的真值在每次循環(huán)結束后檢查),然而在一般的
while
循環(huán)中就不一定了(表達式真值在循環(huán)開始時檢查,如果一開始就為
false
則整個循環(huán)立即終止)。
do-while
循環(huán)只有一種語法:
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
以上循環(huán)將正好運行一次,因為經過第一次循環(huán)后,當檢查表達式的真值時,其值為
false
($i 不大于 0)而導致循環(huán)終止。
資深的 C 語言用戶可能熟悉另一種不同的 do-while
循環(huán)用法,把語句放在 do-while
(0) 之中,在循環(huán)內部用
break
語句來結束執(zhí)行循環(huán)。以下代碼片段示范了此方法:
<?php
do {
if ($i < 5) {
echo "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";
/* process i */
} while(0);
?>
可以使用 goto
跳出循環(huán),取代這種 hack 的方式。