PHP添加到购物车

PHP添加到购物车,php,Php,自动取款机,我在测试我的购物车。当我加载一个包含要添加到购物车的产品的新页面时,他们会添加add fine,但我也会得到一个错误,例如: 注意:未定义索引:cart_25 in 25是与产品关联的索引 if (isset($_GET['add'])) { $_SESSION['cart_'.(int)$_GET['add']]+=1; } foreach($_SESSION as $name => $value) { if ($value>0){

自动取款机,我在测试我的购物车。当我加载一个包含要添加到购物车的产品的新页面时,他们会添加add fine,但我也会得到一个错误,例如:

注意:未定义索引:cart_25 in

25是与产品关联的索引

  if (isset($_GET['add'])) {
   $_SESSION['cart_'.(int)$_GET['add']]+=1;
   }


   foreach($_SESSION as $name => $value) {
    if ($value>0){
     if (substr($name,0,5)=='cart_') {
       $name = substr($name, 5, (strlen($name)-5));
       echo $name.'<br />';
     }
if(isset($\u GET['add'])){
$_SESSION['cart.'(int)$_GET['add']]+=1;
}
foreach($\会话为$name=>$value){
如果($value>0){
如果(substr($name,0,5)='cart_u2;'){
$name=substr($name,5,(strlen($name)-5));
回显$name。“
”; }
任何有帮助的提示都很好

请尝试以下方法:

$key = 'cart_' . $_GET['add'];
$_SESSION[$key] = isset($_SESSION[$key]) ? $_SESSION[$key] + 1 : 1;
试着这样做:

$key = 'cart_' . $_GET['add'];
$_SESSION[$key] = isset($_SESSION[$key]) ? $_SESSION[$key] + 1 : 1;
$\u会话['cart.](int)$\u GET['add']+=1;
执行
$\u会话['cart.](int)$\u GET['add']=**$\u会话['cart..(int)$\u GET['add']**+1;
所以第一次它是未定义的,所以

if (!isset($_SESSION['cart_'.(int)$_GET['add']])) {
    $_SESSION['cart_'.(int)$_GET['add'] = 1;
} else {
    $_SESSION['cart_'.(int)$_GET['add']]+=1;
}
$\u会话['cart.](int)$\u GET['add']+=1;
执行
$\u会话['cart.](int)$\u GET['add']=**$\u会话['cart..(int)$\u GET['add']**+1;
所以第一次它是未定义的,所以

if (!isset($_SESSION['cart_'.(int)$_GET['add']])) {
    $_SESSION['cart_'.(int)$_GET['add'] = 1;
} else {
    $_SESSION['cart_'.(int)$_GET['add']]+=1;
}

与其使用
cart_{index}
不如将数组设置为多个维度?这样你的
foreach
循环就会简单得多。你可能还想拥有用于添加和删除项目的函数或方法,这样你就不必每次都进行相同的测试

function add_to_cart($index, $amount) {
   if (!isset($_SESSION['cart'][$index])) {
      $_SESSION['cart'][$index] = 0;
   }
   $_SESSION['cart'][$index] += $amount;
}

与其使用
cart_{index}
不如将数组设置为多个维度?这样你的
foreach
循环就会简单得多。你可能还想拥有用于添加和删除项目的函数或方法,这样你就不必每次都进行相同的测试

function add_to_cart($index, $amount) {
   if (!isset($_SESSION['cart'][$index])) {
      $_SESSION['cart'][$index] = 0;
   }
   $_SESSION['cart'][$index] += $amount;
}

正如下面的一个答案所指出的,当您要将$\u GET['add']连接到“cart”时,没有必要将其强制转换为int。正如下面的一个答案所指出的,当您要将$\u GET['add']连接到“cart”时,没有必要将其强制转换为int(作为字符串)