while 迴圈屬於「先判斷後執行」型迴圈,適用於迭代次數未知、由條件動態決定的場景。
while (條件表達式) {
迴圈體語句;
}
否則會導致無限迴圈(死循環),佔滿 CPU 資源。
<?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(); } |
forwhile<?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; ?>
while 迴圈以條件為核心驅動,是處理動態資料流、非確定性迭代的利器。