0
我想計算一個運輸價格。Floatvalue總是浮動(0)
- 1項收費2.50€
- 2-10項4,5€
- 10+項*(的 項/ 10號)4.5€
我的代碼:
$item_count = self::getItemCount();
if($item_count == 1){
$vsk = 2.5;
}
else if($item_count > 1 && $item_count <= 10){
$vsk = 4.5;
}
else{
$vsk = ceil($item_count/10) * 4.5;
}
var_dump($item_count);
var_dump($vsk);
$item_count
包含在車中的商品的數量,並得到我的正確值。但$vsk
一個vardump總是float(0);
一些例子:
string(3) "(1)" float(0)
string(3) "(4)" float(0)
你看到我的錯誤(縣)?
編輯:
arkascha注意到getItemCOunt返回一個字符串。 我cahnge代碼:
$item_count = intval(self::getItemCount());
現在我得到:
int(0) float(0)
所以我的項目數,方法似乎是錯誤的。
public static function getItemCount()
{
self::$items = session::getArray('cart');
$amount = 0;
foreach (self::$items as $i) {
$amount += $i;
}
return ($amount > 0) ? '(' . $amount . ')' : '';
}
如果我解釋你的輸出是正確的,那麼'$ item_count'包含文字字符串「(1)」。這不是一個數字,所以沒有什麼可以用來進行計算。你首先必須注意從它提取數字值(所以「1」而不是「(1)」),其次你必須將它轉換爲數字,也許使用'intval(...)'。 – arkascha
更好的是,修正getItemCount()方法,以便它實際返回一個計數。 – jeroen
感謝您的回答。我現在得到了一個int val,它用'$ item_count = intval(self :: getItemCount());'但是float仍然是0,像'int(0)float(0)' – osanger