最近研究 Laravel 時發現有個寫法是 switch(true), 就稍微研究了一下
這裡假設我們有一個商場折扣程式
大於5件給0.9折
大於10件給0.8折
傳統寫法
$count = 12;
function sumDiscount($count) {
$discount = 1.0;
if ($count > 5) {
$discount = 0.9;
}
if ($count > 10) {
$discount = 0.8;
}
return $discount;
}
echo sumDiscount($count); //0.8
switch寫法
$count = 12;
function sumDiscount($count) {
switch(true) {
//如果數量大於5
case $count > 5:
$discount = 0.9;
//如果數量大於10
case $count > 10:
$discount = 0.8;
//預設
default:
$discount = 1.0;
}
//如果帶上break就會導致折扣永遠是0.9
return $discount;
}
echo sumDiscount($count); //0.8
本作品採用《CC 協議》,轉載必須註明作者和本文連結