[英]PHP switch statement with same value in multiple cases
與使用多個if相比,我真的很喜歡switch語句的結構。 但是,有時候我想使用switch語句,並且在多種情況下具有相同的值。 可以以某種方式做到這一點嗎?
switch($fruit) {
case 'apple':
case 'orange':
// do something for both apples and oranges
break;
case: 'apple':
// do something for only apples
break;
case: 'orange':
// do something for only oranges
break;
}
我希望我的榜樣能說明我打算做什么...
不,它不能。 匹配的第一種case
及其后的所有內容,直到第一個break
語句或switch
語句的末尾都將執行。 如果您break
,則會中斷switch
語句,並且無法重新輸入。 您能做的最好的事情是:
switch ($fruit) {
case 'apple':
case 'orange':
...
switch ($fruit) {
case 'apple':
...
case 'orange':
...
}
}
但實際上,不是。 如果您需要個人前這兩個部分專項行動switch
,做一個if (in_array($fruit, ['apple', 'orange'])) ...
的前switch
。 或重新考慮整個程序的邏輯和結構。
創建一些函數並按以下方式進行:
switch($fruit) {
case: 'apple':
apple_and_orange_function();
apple_function();
break;
case: 'orange':
apple_and_orange_function();
orange_function();
break;
}
您不能多次匹配某些內容,但是可以編寫如下的級聯:
switch($fruit) {
case 'apple':
// do something for only apples
case 'orange':
// do something for both apples and oranges
break;
case: 'grapefruit':
// do something for only grapefruits
break;
}
不過,您只能使用if-else或deceze的解決方案來執行所需的操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.