for 循環適用於已知迭代次數的場景,語法包含三個表達式:
for (初始值; 條件; 增量) {
// 循環體
}
| 表達式 | 說明 | 執行時機 |
|---|---|---|
| 初始值 | 初始化計數器,可為多表達式(逗號分隔) | 循環開始前執行一次 |
| 條件 | 布爾判斷,true 繼續,false 結束 | 每次迭代前檢查 |
| 增量 | 更新計數器,可為多表達式 | 每次迭代結束後執行 |
注意:三個表達式均可為空,但分號必須保留。例如無限循環:for (;;) { ... }
<?php
for ($i = 1; $i <= 5; $i++) {
echo "The number is " . $i . "<br>";
}
?>
$i = 1 初始化$i <= 5 → true$i++ 變為 2$i = 6 時條件為 false 結束The number is 1 The number is 2 The number is 3 The number is 4 The number is 5
// 同時控制兩個變量
for ($i = 0, $j = 10; $i <= 10; $i++, $j--) {
echo "$i + $j = " . ($i + $j) . "<br>";
}
$arr = ['a', 'b', 'c', 'd'];
for ($i = 0, $len = count($arr); $i < $len; $i++) {
echo $arr[$i] . "<br>";
}
for ($i = 1; $i <= 10; $i++) {
if ($i % 2 === 0) continue; // 跳過偶數
echo $i . "<br>"; // 輸出 1,3,5,7,9
}
for ($i = 1; $i <= 100; $i++) {
if ($i === 5) break; // 到 5 結束
echo $i . "<br>";
}
// 每次迭代都調用 count()
for ($i = 0; $i < count($arr); $i++) { ... }
$len = count($arr);
for ($i = 0; $i < $len; $i++) { ... }
for ($i = 0; $i < 10; $i++) {
$i = 5; // 破壞循環控制
}
對於數組遍歷,foreach 比 for 更優:
// 推薦寫法
foreach ($arr as $key => $value) {
// ...
}
for 循環是結構化程序設計的基石,掌握其三表達式執行順序、善用 break/continue 控制流程、避免在條件中放置昂貴操作,能寫出高效清晰的迭代邏輯。實際開發中,優先考慮 foreach 遍歷數組,for 保留給需要精確索引控制的場景。