-3

在此代码删除案例中,执行比会话获取负值更多的时间。会话代码中发生的更改类型仅获取正值。

 <?php
    session_start();
    $d1=$_POST['d1'];
    $action=$_POST['str1'];
    $product_id = $_POST['productid'];
    switch($action) 
    { 
    case "Add":
        $_SESSION['cart'][$product_id] = $d1 + (isset($_SESSION['cart'][$product_id]) ?$_SESSION['cart'][$product_id] : 0);
    break;
        case "Remove":
    $_SESSION['cart'][$product_id]=(isset($_SESSION['cart'][$product_id]) ? $_SESSION['cart'][$product_id] : 0)- $d1;
            if($_SESSION['cart'][$product_id] == 0)
            unset($_SESSION['cart'][$product_id]); 
            break;
     }
    ?>
4

2 回答 2

0

使用<=而不是==避免负值

if($_SESSION['cart'][$product_id] <= 0)

此外,您还缺少break;“添加”案例中的声明

于 2013-10-04T06:38:47.573 回答
0

如果是“删除”:部分。

您首先计算项目列表并放置 if else 检查 if count > 0 然后执行删除操作 else

跳过删除。

于 2013-10-04T06:35:38.767 回答