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

PHP 語法結構完全指南:順序、選擇、循環三大結構與常用語句詳解

     編輯:PHP 綜合知識

PHP 程序三大基本結構

結構類型特點關鍵字
順序結構代碼自上而下依次執行無特殊關鍵字
選擇結構根據條件決定執行路徑if, else, elseif, switch, match
循環結構重複執行代碼塊for, foreach, while, do-while

選擇結構深度解析

if / elseif / else

<?php
$score = 85;

if ($score >= 90) {
    $grade = 'A';
} elseif ($score >= 80) {
    $grade = 'B';
} elseif ($score >= 70) {
    $grade = 'C';
} elseif ($score >= 60) {
    $grade = 'D';
} else {
    $grade = 'F';
}

// PHP 8.0+ match 表達式(更簡潔、嚴格比較)
$grade = match (true) {
    $score >= 90 => 'A',
    $score >= 80 => 'B',
    $score >= 70 => 'C',
    $score >= 60 => 'D',
    default      => 'F',
};
?>

switch vs match 對比

特性switchmatch (PHP 8.0+)
比較類型鬆散比較 (==)嚴格比較 (===)
返回值無(需自行賦值)直接返回值
break必須手動 break自動中斷
多條件case 'a': case 'b':用逗號分隔
默認分支default:default =>
<?php
// match 多條件示例
$status = match ($code) {
    200, 201, 204 => 'success',
    400, 401, 403, 404 => 'client_error',
    500, 502, 503 => 'server_error',
    default => 'unknown',
};
?>

循環結構完全指南

1. foreach —— 遍歷數組/對象首選

<?php
$fruits = ['apple', 'banana', 'orange'];

// 僅值
foreach ($fruits as $fruit) {
    echo $fruit . "\n";
}

// 鍵值對
$user = ['name' => '張三', 'age' => 25, 'city' => '北京'];
foreach ($user as $key => $value) {
    echo "$key: $value\n";
}

// 引用修改原數組
foreach ($fruits as &$fruit) {
    $fruit = strtoupper($fruit);
}
unset($fruit); // 重要:銷毀引用,防止後續誤用
?>

2. for —— 知道循環次數時使用

<?php
// 輸出 1-10
for ($i = 1; $i <= 10; $i++) {
    echo $i . ' ';
}

// 遍歷數組(不推薦,foreach 更優)
$arr = ['a', 'b', 'c'];
for ($i = 0, $len = count($arr); $i < $len; $i++) {
    echo $arr[$i];
}

// 多變量控制
for ($i = 0, $j = 10; $i < $j; $i++, $j--) {
    echo "$i + $j = " . ($i + $j) . "\n";
}
?>

3. while / do-while —— 條件控制循環

<?php
// while:先判斷後執行
$i = 1;
while ($i <= 5) {
    echo $i++;
}

// do-while:至少執行一次
$input = '';
do {
    $input = readline('請輸入 quit 退出: ');
} while ($input !== 'quit');

// 典型場景:讀取數據庫結果集
$stmt = $pdo->query('SELECT * FROM users');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    process($row);
}
?>

4. 循環控制語句

語句作用適用結構
break跳出當前循環(可帶數字跳出多層)for, foreach, while, do-while, switch
continue跳過本次迭代,進入下一次for, foreach, while, do-while
break 2跳出雙層循環嵌套循環
<?php
// 查找二維數組中第一個大於 50 的值
$matrix = [[10,20], [30,60], [70,80]];
$found = false;

foreach ($matrix as $row) {
    foreach ($row as $val) {
        if ($val > 50) {
            echo "找到: $val\n";
            $found = true;
            break 2; // 直接跳出兩層
        }
    }
}
?>

進階:生成器 —— 內存高效的迭代

<?php
function fibonacci(int $n): Generator {
    $a = 0; $b = 1;
    for ($i = 0; $i < $n; $i++) {
        yield $a;
        [$a, $b] = [$b, $a + $b];
    }
}

// 惰性計算,不佔用大量內存
foreach (fibonacci(1000000) as $num) {
    // 處理...
    if ($num > 10000) break; // 提前結束,節省資源
}
?>

最佳實踐速查

  • 遍歷數組/對象 → foreach
  • 已知次數/計數器 → for
  • 條件不確定次數 → while
  • 至少執行一次 → do-while
  • 大數據/無限序列 → Generator (yield)
  • PHP 8.0+ 多分支 → match 替代 switch

掌握三大結構與五種循環,寫出清晰、高效、現代化的 PHP 代碼。

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