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); // 文件頂部,強制嚴格類型模式