首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP while 迴圈完整指南:先判斷後執行的條件迴圈

     編輯:PHP 綜合知識

while 迴圈屬於「先判斷後執行」型迴圈,適用於迭代次數未知、由條件動態決定的場景。

語法結構

while (條件表達式) {
    迴圈體語句;
}

執行流程

  1. 評估條件表達式
  2. 為真 → 執行迴圈體 → 回第 1 步
  3. 為假 → 跳出迴圈,繼續後續代碼

關鍵要求:迴圈變量必須在迴圈體內變化

否則會導致無限迴圈(死循環),佔滿 CPU 資源。

實戰範例:輸出 20 行問候語

<?php
$i = 0;
while ($i < 20) {
    echo '<br />Hello, www.example.com!';
    $i++; // 關鍵:迴圈變量遞增
}
?>

常見應用場景

場景代碼模式
資料庫結果集遍歷while ($row = $stmt->fetch()) { ... }
檔案逐行讀取while (($line = fgets($fp)) !== false) { ... }
佇列/堆疊處理while (!empty($queue)) { $item = array_shift($queue); ... }
重試機制while ($retry < 3 && !$success) { ... }
事件迴圈while ($running) { processEvents(); }

while vs for 選擇指南

  • 已知迭代次數/計數器驅動 → for
  • 條件驅動/未知次數/資料流處理 → while
  • 兩者可相互轉換,選語義更清晰者

無限迴圈與 break/continue

<?php
while (true) {
    $input = readInput();
    if ($input === 'quit') break;      // 跳出整個迴圈
    if ($input === 'skip') continue;   // 跳過本次剩餘,進入下輪判斷
    process($input);
}
?>

替代語法

<?php while ($row = $stmt->fetch()): ?>
    <tr><td><?= $row['name'] ?></td></tr>
<?php endwhile; ?>

避坑指南

  1. 確保迴圈體內有明確的終止條件變化
  2. 資源處理(檔案、資料庫)記得在迴圈外釋放
  3. 大量資料處理注意記憶體限制,考慮分批/生成器

while 迴圈以條件為核心驅動,是處理動態資料流、非確定性迭代的利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved