萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 控制結構完整指南:if/else/elseif、while/do-while、for、foreach、switch

1. if / else / elseif

<?php
if ($a > $b) {
    echo "a > b";
} elseif ($a == $b) {
    echo "a == b";
} else {
    echo "a < b";
}

// 替代語法 (模板中常用)
if ($cond):
    // ...
elseif ($cond2):
    // ...
else:
    // ...
endif;
?>

2. while / do-while

<?php
$i = 1;
while ($i <= 10) {
    echo $i++;
}

// do-while 至少執行一次
do {
    echo $i;
} while ($i < 10);

// 替代語法
while ($cond):
    // ...
endwhile;
?>

3. for 循環

<?php
for ($i = 0; $i < 10; $i++) {
    echo $i;
}

// 多初始化/遞增
for ($i = 0, $j = 10; $i < $j; $i++, $j--) {
    // ...
}

// 替代語法
for ($i=0; $i<10; $i++):
    echo $i;
endfor;
?>

4. foreach (遍歷數組/對象首選)

<?php
$arr = ['a'=>1, 'b'=>2, 'c'=>3];

// 僅值
foreach ($arr as $val) { echo $val; }

// 鍵值
foreach ($arr as $key => $val) { echo "$key => $val"; }

// 修改原數組值 (需引用)
foreach ($arr as &$val) { $val *= 2; }
unset($val); // 重要:解除引用

// 遍歷對象屬性 (public)
foreach ($obj as $prop => $val) { ... }
?>

5. switch / match (PHP 8+)

<?php
switch ($action) {
    case 'add':
    case 'create':
        create();
        break;
    case 'edit':
        edit();
        break;
    default:
        throw new Exception("Unknown action");
}

// PHP 8 match 表達式 (更嚴格、無隱式轉換、返回值)
$result = match ($status) {
    200 => 'OK',
    404 => 'Not Found',
    500 => 'Server Error',
    default => 'Unknown',
};
?>

6. 跳出控制

  • break:跳出當前循環/switch,可跟數字跳出多層 break 2。
  • continue:跳過本次循環剩餘部分,進入下一次迭代,可跟數字。
  • return:直接返回函數/腳本。
  • goto:慎用,僅限極少數狀態機場景。

7. declare (指令)

declare(ticks=1) {
    // 每條低級語句觸發 tick 事件 (配合 register_tick_function)
}
declare(strict_types=1); // 文件頂部,強制嚴格類型模式
copyright © 萬盛學電腦網 all rights reserved