2015-06-03 52 views
4

所以,我一直在努力學習PHP。我有一份作業,我應該製作一份有價格產品清單,並根據它是哪一天,它應該給你一個折扣。這工作到目前爲止。然而,我試圖做的一件事是不直接在代碼中回顯結果;我想創建一個採用必要參數(Taste,Price,Amount)並返回格式化字符串的函數。儘管嘗試了很多,我仍然無法做到這一點。這是我的代碼。這是我第一次使用堆棧溢出,所以請原諒我,如果我沒有正確輸入。如何創建一個從代碼中獲取參數並返回一個字符串的函數?

<?php 
    $donuts = array(
     array("Strawberry", 10), 
     array("Chocolate", 20), 
     array("Vanilla", 30) 
    ); 
    $weekday = date('N'); 
    $week = date('W'); 
    $hour = date('G'); 

    if ($weekday == 4) { 
     echo "Hi"; 
    } 
?> 
<?php 
    $today = date("l F j, Y"); 
     if ($weekday % 2 == 1 && $week % 2 == 1 && $hour >= 14 && $hour < 17){    
      echo "Congratulations! You get a 5% discount, and your wares will be delivered tomorrow!"; 
     } 
    PRINT "$today"; 
?> 
<table border="1"> 
     <tr> 
      <th>Taste</th> 
      <th>Price</th> 
      <th>Discount</th> 
      <th>Amount</th> 
     </tr> 
    <?php 
     for($i = 0; $i<count($donuts); $i++) { 
     echo "<tr>"; 
     echo "<td>".$donuts[$i][0]."</td>"; 
     if($weekday == 1){ 
      echo"<td>".getPricePercent($donuts[$i][1], .5)." kr</td>"; 
      }   
      if($weekday == 3){ 
       echo"<td>".getPricePercent($donuts[$i][1], 1.1)." kr</td>";  
      }   
      $pris = $donuts[$i][1]; 
       if ($weekday == 5 && $pris > 20){ 
        echo"<td>".($pris-1)." kr</td>"; 
       }   
       else { echo"<td>".getPrice($donuts[$i][1], .9)." kr</td>";} 
    ?> 
      <td><input type="number" name="donuts-<?php echo $i; ?>" /></td> 
      <?php 
       echo "</tr>"; 
     } 
      ?> 
</table> 
<?php 
    function getPrice($price, $percent) { 
     return ($price); 
    } 
    function getPricePercent($price, $percent){ 
     return ($price * $percent); 
    } 
?> 
+4

您希望通過編輯您的問題來顯示您的預期輸出。謝謝 –

+0

不管你想輸出什麼,你可能最好創建第二個函數getPercent,並將所有if語句的'$ pris'邏輯放在裏面。然後,您可以通過getPrice調用它來計算是否需要應用百分比。 爲了幫助您設置格式,您需要說明您希望輸出的格式。 – thelastshadow

回答

-2

如果你想concat字符串,您可以通過使用像這樣實現它:

echo "Price" . $price . "Amount" . $amount; 
0

我不知道究竟你正在試圖pricediscount部分打印的內容。您可以添加getDiscount函數以使您的代碼清潔。

function getDiscount($weekday, $price){ 
    if($weekday == 1){ 
     return .5; 
    } else if($weekday == 3){ 
     return 1.1; 
    } else if($weekday == 5 && $price > 20){ 
     return $price-1; 
    } 
} 

然後你就可以做到這一點,

<table border="1"> 
     <tr> 
      <th>Taste</th> 
      <th>Price</th> 
      <th>Discount</th> 
      <th>Amount</th> 
     </tr> 
     <?php 
     for($i = 0; $i<count($donuts); $i++) { 
      echo "<tr>"; 
      echo "<td>".$donuts[$i][0]."</td>"; 
      echo"<td>".getPricePercent($donuts[$i][1], getDiscount($weekday,$donuts[$i][1]))." kr</td>"; 
      echo"<td>".getPrice($donuts[$i][1], getDiscount($weekday,$donuts[$i][1]))." kr</td>"; 
      ?> 
      <td><input type="number" name="donuts-<?php echo $i; ?>" /></td> 
      <?php 
      echo "</tr>"; 
     } 
     ?> 
    </table> 

不過,我不明白,你試圖動態更新取決於量價值?

相關問題