最近研究 Laravel 時發現有個寫法是 switch(true), 就稍微研究了一下
這裡假設我們有一個商場折扣程式
大於5件給0.9折
大於10件給0.8折
傳統寫法
function sumDiscount($count) {
if ($count > 10) {
return 0.8;
} else if ($count > 5) {
return 0.9;
} else {
return 1;
}
}
echo sumDiscount(4); //1
echo sumDiscount(8); //0.9
echo sumDiscount(12); //0.8
switch寫法
function sumDiscount($count) {
switch(true) {
case $count > 10:
return 0.8;
case $count > 5:
return 0.9;
default:
return 1;
}
}
echo sumDiscount(4); //1
echo sumDiscount(8); //0.9
echo sumDiscount(12); //0.8
甚至也可以反著寫
function sumDiscount($count) {
switch(false) {
case $count < 10:
return 0.8;
case $count < 5:
return 0.9;
default:
return 1;
}
}
echo sumDiscount(4); //1
echo sumDiscount(8); //0.9
echo sumDiscount(12); //0.8
這樣寫的話個人認為結構層次更清晰了 (?)
本作品採用《CC 協議》,轉載必須註明作者和本文連結