2017-09-26 52 views
-1

您好我有一個小問題,即 - 我根據輸入數據(淨價格,銷售價格和增值稅)編寫了開銷計算函數。不幸的是 - 該程序工作正常,直到它未定義的值,所以我得到零錯誤。如何修改此功能,以便在顯示echaing回顯而不是提供實際結果時顯示?除零,修改函數

function getMarkup($netprice, $fullprice, $vat) { 
    $markup = 100 * (($fullprice/($netprice * (1 + $vat/100)) - 1)); 
    return round(100 * $markup)/100; 
} 
+1

給我們一個這樣的undefined錯誤的例子 – delboy1978uk

+1

你得到零錯誤?或者你得到錯誤? – delboy1978uk

+0

你可以將這個'$ netprice *(1 + $ vat/100)) - 1)'存儲在一個變量中,並在分割之前測試它是否大於0! – teeyo

回答

0

檢查傳入的值是否設置爲大於0的數字。如果它們傳入垃圾,則拋出InvalidArgumentException。

function getMarkup($netprice, $fullprice, $vat) { 

    if (!$netprice > 0 || !$fullprice > 0 || !$vat > 0) { 
     throw new InvalidArgumentException('please pass valid numbers'); 
    } 

    $markup = 100 * (($fullprice/($netprice * (1 + $vat/100)) - 1)); 
    return round(100 * $markup)/100; 
}