PHP - 選擇語句

你好,有志於成為程序員的各位!今天,我們將深入探討 PHP 最有用的控制結構之一:選擇語句(switch statement)。作為你們親切的鄰居計算機老師,我非常興奮能夠引導你們走過這段旅程。所以,拿起你們最喜歡的飲料,放鬆身心,讓我們一起踏上這場編程冒險吧!

PHP - Switch Statement

選擇語句是什麼?

在我們深入細節之前,讓我們先了解選擇語句是什麼,以及它為什麼如此有用。想像你在一個冰淇淋店,需要選擇一種口味。你可以使用一系列的 if-else 語句來處理每種口味選擇,但這會很快變得雜亂無章。這就是選擇語句出場救援的時候!

選擇語句讓你可以將一個變量與多個值進行測試,並根據匹配結果執行不同的代碼塊。這就像有一個幫助你挖冰淇淋的人,他知道根據你的口味選擇應該做什麼。

基本語法

以下是選擇語句的基本結構:

switch (expression) {
case value1:
// 如果 expression == value1 則執行此代碼
break;
case value2:
// 如果 expression == value2 則執行此代碼
break;
...
default:
// 如果 expression 不匹配任何 case 則執行此代碼
}

現在,讓我們通過一個真實世界的例子來看看它是如何工作的!

示例

讓我們創建一個簡單的程序,根據用戶最喜歡的星期幾給出消息。

<?php
$favoriteDay = "Wednesday";

switch ($favoriteDay) {
case "Monday":
echo "有人星期一症候群!";
break;
case "Wednesday":
echo "週三快樂!";
break;
case "Friday":
echo "TGIF!派對時間!";
break;
default:
echo "過個美好的一天!";
}
?>

如果你運行這段代碼,它將輸出:"週三快樂!"

讓我們分解一下這裡發生了什麼:

  1. 我們將變量 $favoriteDay 設為 "Wednesday"。
  2. 選擇語句檢查 $favoriteDay 的值。
  3. 它發現與 "Wednesday" 匹配的 case。
  4. 它執行該 case 的代碼,打印 "週三快樂!"。
  5. break 語句確保執行在此停止,並不會繼續到下一個 case。

選擇語句中的默認情況

你可能在之前的例子中注意到 default case。這就像我們冰淇淋店比喻中的 "全能選項"。如果沒有特定口味匹配,你會得到默認口味。

讓我們修改一下之前的例子:

<?php
$favoriteDay = "Saturday";

switch ($favoriteDay) {
case "Monday":
echo "有人星期一症候群!";
break;
case "Wednesday":
echo "週三快樂!";
break;
case "Friday":
echo "TGIF!派對時間!";
break;
default:
echo "過個美好的一天!";
}
?>

這次,輸出將是:"過個美好的一天!"

為什麼?因為 "Saturday" 並不匹配我們任何特定的 case,所以執行 default case 的代碼。

選擇語句的 switch-endswitch 替代語法

PHP 提供了一種選擇語句的替代語法,使用 switch-endswitch。當你在 HTML 中嵌入 PHP 代碼時,這特別有用。

這是它的樣子:

<?php
$favoriteColor = "blue";

switch ($favoriteColor):
case "red":
echo "你一定很激情!";
break;
case "blue":
echo "今天心情平靜和寧靜?";
break;
case "green":
echo "你一定愛大自然!";
break;
default:
echo "那是一個很美的顏色!";
endswitch;
?>

這將輸出:"今天心情平靜和寧靜?"

switch-endswitch 語法與傳統的大括號語法完全相同。這只是個人偏好和編程風格的問題。

在選擇語句中使用 Break 語句

現在,讓我們來討論一下 break 語句的重要性。它就像我們代碼中的 "停止" 訊號。沒有它,PHP 將繼續執行下面的代碼,即使它們不匹配。

讓我們看看當我們忘記使用 break 時會發生什麼:

<?php
$grade = "B";

switch ($grade) {
case "A":
echo "優秀! ";
case "B":
echo "做得好! ";
case "C":
echo "你通過了。 ";
default:
echo "繼續學習!";
}
?>

你能猜到輸出是什麼嗎?它將是:"做得好!你通過了。繼續學習!"

即使 $grade 是 "B",由於沒有 break 語句,代碼會繼續執行所有 "B" 之後的 case。這被稱為 "穿透" 行為。

雖然這有時很有用,但通常不是我們想要的。記得除非你特別需要穿透行為,否則總是使用 break

結論

好了,各位!我們已經穿越了 PHP 選擇語句的世界。從理解它的基本結構到探索它的各種形式以及 break 語句的重要作用,現在你知道如何在你的 PHP 程序中使用這個強大的控制結構。

記住,編程就像學習騎自行車一樣。起初可能會有些晃動,但隨著練習,你會很快騎得飛快。持續編碼,持續學習,最重要的是,玩得開心!

在我們分道揚镳之前,這裡有一個方便的表格,總結了我們覆蓋的關鍵點:

概念 描述
選擇語句 測試變量與多個值,並根據匹配執行代碼
Case 指定一個值與選擇語句的表達式進行比較
Default 當選擇語句的表達式與任何 case 不匹配時執行
Break 停止選擇語句塊的執行
選擇語句的穿透行為 當省略 break 時,執行會繼續到下一個 case
Switch-endswitch 選擇語句的替代語法

編碼愉快,願你的選擇總能找到完美的 case!

Credits: Image by storyset