购物车为空时如何忽略PHP错误

购物车为空时如何忽略PHP错误,php,conditional-statements,Php,Conditional Statements,当我的购物车是空的时,我如何捕捉错误 <?php if(is_array($_SESSION['cart'])){ echo '<tr bgcolor="#FFFFFF" style="font-weight:bold"><td>Serial</td><td>Name</td><td>Price</td><td>Qty</td><td>Amount&l

当我的购物车是空的时,我如何捕捉错误

<?php
   if(is_array($_SESSION['cart'])){
       echo '<tr bgcolor="#FFFFFF" style="font-weight:bold"><td>Serial</td><td>Name</td><td>Price</td><td>Qty</td><td>Amount</td><td>Options</td></tr>';
       $max=count($_SESSION['cart']);
       for($i=0;$i<$max;$i++){
           $pid=$_SESSION['cart'][$i]['productid'];
           $q=$_SESSION['cart'][$i]['qty'];
           $pname=get_product_prod_name($pid);
           if($q==0) continue;
           ?>
           <tr bgcolor="#FFFFFF"><td><?php echo $i+1?></td><td><?php echo $pname?></td>
               <td>₱<?php echo get_prod_price($pid)?></td>
               <td><input type="text" name="product<?php echo $pid?>" value="<?php echo $q?>" maxlength="2" size="2" /></td>                    
               <td>₱<?php echo get_prod_price($pid)*$q?></td>
               <td><a href="javascript:del(<?php echo $pid?>)">Remove</a></td></tr>
           <?php                    
       }
       ?>
       <tr><td><b>Order Total: ₱<?php echo get_order_total()?></b></td><td colspan="5" align="right"><input type="button" value="Clear Cart" onclick="clear_cart()"><input type="button" value="Update Cart" onclick="update_cart()"><input type="button" value="Check Out" onclick="window.location='billing.php?'"></td></tr> <!--Previously billing.php?command=update -->
       <?php
    }

    else{
        echo "<tr bgColor='#FFFFFF'><td>There are no items in your shopping cart!</td>";
    }
?>

如果重新排列购物车数组,使productID成为键,则

更改数量:

$_SESSION['cart'][$productID] = $quantity;
从购物车中删除:

unset($_SESSION['cart'][$productID]);
迭代购物车变成:

foreach($_SESSION['cart'] as $productID => $quantity) {
  ... do something ...
}

只要您在购物车第一次启动时正确地执行
$\u会话['cart']=array()
,foreach循环就不会在购物车的空位置执行任何操作。

无论如何,您的购物车都做错了。密钥应该是productID,因此您不必每次用户想要更新数量时都扫描整个购物车<代码>$\u会话['cart'][$productID]=array('quantity']=>50)
让生活变得更简单,然后你也可以使用一个简单的foreach()循环,而不知道数组中有多少项。我对这个很陌生。哈哈。我该怎么做@Marcby您只需使用isset($yourSomething)检查是否首先设置了,它将根据是否设置返回TRUE或FALSE。若要禁用该按钮,请使用另一个if else检查会话['user\u id'],并将可单击/禁用的按钮放入其中。。我通常会检查会话,如果不存在,询问电子邮件地址,并在下面给出2个选项。。。在返回用户时输入密码,或者在没有密码的情况下继续,或者提供密码来创建帐户,然后在添加功能成功后调用auth函数,然后重定向到shipping address页面或任何需要的地方..你也可以共享一个phpfiddle吗?嗯。我不知道如何开始,我只是按照[链接]()我不知道我在做什么。我很感谢你的帮助,但我对这件事很陌生。我很难修复它。