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

PHP 循環控制語句完整指南:while、do-while、for 與 foreach 深度解析

     編輯:PHP 相關知識

PHP 循環控制語句概述

在 PHP 開發中,循環結構是處理重複性任務的核心工具。PHP 提供了四種主要的循環語句:while、do-while、for 和 foreach。每種循環都有其適用場景,掌握它們的差異與優勢,能讓程式碼更簡潔、高效。

foreach 循環:陣列遍歷的首選

foreach 專為陣列設計,PHP 4.0 引入,PHP 5 起支援物件遍歷。它提供兩種語法形式:

基本語法

foreach (array_expression as $value) {
    // 執行程式碼
}

foreach (array_expression as $key => $value) {
    // 執行程式碼
}

實際範例:簡單陣列遍歷

<?php
$array1 = array(1, 2, 3, 4, 5);
foreach ($array1 as $abc) {
    echo "new value is " . ($abc * 10) . "<br>";
}
?>

輸出結果:

new value is 10
new value is 20
new value is 30
new value is 40
new value is 50

多維陣列遍歷範例

<?php
$s = array(array(1,2), array(3,4), array(5,6));
foreach ($s as $v => $_v) {
    foreach ($_v as $vc => $_vc) {
        echo $_vc[0] . '|' . $_vc[1] . '<br />';
    }
}
?>

for 循環:精確控制的迭代利器

for 循環適合已知迭代次數或需要精確控制計數器的場景。

語法結構

for (expr1; expr2; expr3) {
    statement;
}
  • expr1:循環開始前執行一次(初始化)
  • expr2:每次循環前判斷,為 TRUE 繼續,FALSE 結束
  • expr3:每次循環後執行(通常遞增/遞減)

多種寫法示範

<?php
// 寫法 1:標準形式
for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

// 寫法 2:在循環體中 break
for ($i = 1; ; $i++) {
    if ($i > 10) break;
    echo $i;
}

// 寫法 3:初始化在外部
$i = 1;
for (; ; ) {
    if ($i > 10) break;
    echo $i;
    $i++;
}

// 寫法 4:多重初始化與運算
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

陣列遍歷應用

<?php
$people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
);

for ($i = 0; $i < count($people); ++$i) {
    $people[$i]['salt'] = rand(000000, 999999);
}
?>

while 循環:條件驅動的基礎循環

while 是最簡單的循環,只要條件為 TRUE 就持續執行。

兩種語法風格

<?php
// 大括號風格
$i = 1;
while ($i <= 10) {
    echo $i++;
}

// 替代語法(適合模板混編)
$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>

do-while 循環:至少執行一次的保證

do-while 與 while 的關鍵差別:**條件判斷在循環體之後**,確保循環體至少執行一次。

語法與範例

<?php
$i = 0;
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);
?>

循環選擇建議

循環類型適用場景特點
foreach陣列/物件遍歷語法簡潔、自動處理指標、效能佳
for已知次數、複雜計數邏輯控制精確、三段式結構清晰
while未知次數、條件驅動簡單直觀、可能零次執行
do-while至少需執行一次後置判斷、保證首次執行

常見陷阱與最佳實踐

  • 避免無限循環:確保循環條件最終會變為 FALSE
  • foreach 複用陣列:使用 each() 後需 reset() 重置指標
  • 大數據集:考慮使用生成器或分批處理避免記憶體耗盡
  • 修改陣列值:在 foreach 中用 &$value 參考傳遞

總結

PHP 的四大循環各有千秋。foreach 是陣列處理的首選;for 適合精確控制;while 處理條件未知的重複;do-while 確保首次執行。實戰中根據業務邏輯選擇最合適的循環,能讓程式碼更具可讀性與維護性。

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