购物车问题
我有这个购物车购物车问题
function modifyCart($action, $id){
$kori = cart();
$exp = explode("|", $kori);
for($i=0;$i<count($exp);$i++){
$pilk = explode("-", $exp[$i]);
if($id == $pilk[0]){
switch($action){
case "increase": // lisätään määrää
break;
case "decrease": // vähennetään määrää
break;
case "remove": // poistetaan
unset($exp[$i]);
}
}
}
$valmis = array_merge($exp, $pilk);
$muuta = implode("|", $valmis);
$_SESSION["cart"] = $muuta;
}
车存放像productno-qty|productno-qty
我怎么能得到工作的功能..感谢帮助
这是一个可怕的车。但是,如果仅停留在这条赛道上,你想这样:
function modifyCart($action, $id){
$kori = cart();
$exp = explode("|", $kori);
foreach ($key, $product in $exp) {
$tmp = explode('-', $product);
$productNo = $tmp[0];
$productQty = $tmp[1];
if ($id == $productNo) {
if ($action == 'remove') {
unset($exp[$key]);
return implode('|', $exp);
} else if ($action == 'increase') {
$productQty += 1;
$exp[$key] = $productNo . '-' $productQty;
return implode('|', $exp);
} else if ($action == 'decrease') {
$productQty -= 1;
if ($productQty == 0) {
unset($exp[$key]);
} else {
$exp[$key] = $productNo . '-' $productQty;
}
return implode('|', $exp);
} else {
// throw exception because unrecognized action
}
}
// handle case where named product was not in the cart here.
return implode('|', $exp);
}
我给你的疑点利益,并假设您要添加的功能,你收不回趋向或重构:-)这里 –
同样的问题别人的遗产代码库:为什么你认为it's糟糕的方式制作购物车? – Olli
@Olli它并不是一个坏车。只知道有很多边缘情况来考虑,并确保所有的代码处理所有的边缘情况 - 通过定义触摸底层数据结构(如饼干是如何处理的)基本功能做得最好。然而,未来的编码人员必须学习并始终遵守这些规则,以防止漏洞百出的错误。为了避免重新发明轮子,请查看某种其他类型的序列化或json编码,其中角色案例由其他人处理,未来的程序员可以查看边缘案例的处理方式。 –
dont'护理括号{}他们没有在这里工作 – Olli
什么是$科里和车(),和他们持什么样的阵列中的数据呢?从这段代码中不清楚。 –
这是什么问题?什么不行? –