在PHP的switch語句中,case條件通常是一個固定的值,但實際上你也可以在case條件中使用表達(dá)式,例如:
$num = 5;
switch(true) {
case $num > 0 && $num < 10:
echo "Number is between 0 and 10";
break;
case $num > 10 && $num < 20:
echo "Number is between 10 and 20";
break;
default:
echo "Number is not in range";
}
在上面的例子中,我們使用了表達(dá)式$num > 0 && $num < 10
作為case條件,這樣就可以根據(jù)$num的值判斷數(shù)字所屬的范圍。
在普通的switch語句中,當(dāng)匹配到一個case時,會執(zhí)行該case及其后面的所有case,直到遇到break語句為止。但是有時候我們可能希望讓某個case執(zhí)行完畢后,繼續(xù)執(zhí)行后面的case,這時可以使用fall-through效果,例如:
$num = 2;
switch($num) {
case 1:
echo "One";
case 2:
echo "Two";
case 3:
echo "Three";
break;
default:
echo "Number is not in range";
}
上面的例子中,當(dāng)$num的值為2時,會輸出"Two"、“Three”,因為沒有在case 2和case 3之間加上break語句,從而實現(xiàn)了fall-through效果。
有時候我們可能需要在switch語句中實現(xiàn)多條件匹配,這時可以使用default case來實現(xiàn),例如:
$num = 5;
switch(true) {
case $num == 1 || $num == 2:
echo "One or Two";
break;
case $num == 3 || $num == 4:
echo "Three or Four";
break;
default:
echo "Number is not in range";
}
在上面的例子中,我們使用了default case來實現(xiàn)多條件匹配,當(dāng)$num的值既不是1也不是2,也不是3也不是4時,會執(zhí)行default case中的代碼。