「基礎編程學習」 「PHP7數組詳解」:第1章 (5)選擇分支結構
- 2020 年 4 月 8 日
- 筆記
#1.9 條件判斷
上面章節講述了條件判斷語句的使用,以及常用的操作符。
下面我們使用邏輯運算符,配置選擇分支程序,做一些功能。
以較為熟悉的學習成績輸出為例。60分以下,顯示不及格;60-80分以下,顯示及格;80-100分以下,顯示優秀;100分,顯示滿分;其他的都是不合格的數據。
代碼像下面這樣:
$score = 68;if ($score < 60) { print("不及格");} elseif ($score < 80) { print('及格');} elseif ($score < 100) { print('優秀');} elseif ($score === 100) { print('滿分');} else { print('分數無效');}

為了能能夠重複使用這個功能,而不是來一個數,寫一堆判斷,這樣做了很多重複工作。我們先提前將,把這個功能封裝為一個函數。如下:
/** * @param $score 分數 * @return string 返回字符串 */function check_score($score){ if ($score < 60) { return "不及格"; } elseif ($score < 80) { return '及格'; } elseif ($score < 100) { return '優秀'; } elseif ($score === 100) { return '滿分'; } else { return '分數無效'; }}
好了,有了這個封裝函數,我們可以使用一系列的值進行輸出測試了。我們準備了各個階段的分數值,看能不能正確輸出:
print(check_score(45));print(check_score(60));print(check_score(78));print(check_score(89));print(check_score(98));print(check_score(100));print(check_score(-9));print(check_score(125));
在瀏覽器內輸入網址 www.array.com/chapter1.5.php ,查看返回結果。為了直觀,和簡單的樣式,我們使用bootstrap提供的css樣式渲染前端頁面,使結果看上去更為直觀。

我們發現程序按照我們預期的結果進行了輸出,這就是我們要的結果。
# 1.10 選擇分支
選擇分支語句,除了上面的if…else…,好友一個switch…case…這個常用的語法結構。
如果處理複雜的應用場景,if…else…多層嵌套,已經使程序結構變得過於複雜,難以維護。這時候可以考慮一下switch語句,看能不能給邏輯結構帶來清晰的效果。

上面一段代碼,是某國產開源商城系統內容的一段代碼。嵌套的if語句,對不同場景進行處理。下面再看一段使用switch處理的場景。

這一段實現的額功能,是根據傳入的數字,也就是日誌記錄類型,進行響應的時間區域的sql查詢。
如果=1,顯示為過去一周;
如果=2,顯示為過去一個月;
如果=3,過去三個月;
如果=4,過去半年;
如果=5,過去一年。
因為log_type在使用之前就已經約定好,卻有明確的返回值,所以使用switch…case…能免去一堆elseif的窘境。
大家注意case中必須明確地使用break跳出分支。不能省去。如果沒有寫,可是會一擼到底的。滿足條件即執行。寫程序的時候,一定不要犯語法的錯誤。