2015-10-30 70 views
-1

我有一個函數來計算價格如下。我只是有興趣學習任何其他方式來縮短我的代碼。如何縮短我的功能?

PHP

function calculate_price($quantity, $target_quantity, $price, $rate) 
{ 
    $total = 0; 

    if($quantity > $target_quantity) 
    { 
     $total = $target_quantity * $price; 
     $quantity -= $target_quantity; 

     $tmp_price = $price; 
     do { 
      $tmp_price = $tmp_price * $rate; 
      $total += $tmp_price; 
      $quantity--; 
     } while($quantity > 0); 

    } 
    else 
    { 
     $total = $quantity*$price; 
    } 

    return $total; 

} 

echo calculate_price(8, 5, 3, 0.5); 
+0

這看起來很完美我認爲 –

+0

「更短」並不等於「更好」。 – arkascha

+0

這是一個在php中實現的好功能,保持原樣。代碼非常清晰,你也可以通過遞歸函數使用另一種方式,但我認爲沒有必要。 – Mimouni

回答

0

你可以在while語句結合遞減。

while(--$quantity > 0); 
+0

這是一個可怕的想法,下一個讀這是完全會錯過這個。如果OP沒有要求縮短,我會投票。但縮短不等於更好或者是一個好主意。 – hoppa