PHP:避免未定义的索引?
发布时间:2020-12-13 17:52:35 所属栏目:PHP教程 来源:网络整理
导读:每次POST值不等于数组中设置的值列表时,将返回:未定义的索引错误,我做了一个if语句但是没有工作. 这是if语句: if ($products[$_POST['product']] == $_POST['product']) {do everything;}else {echo "This item is not available";} EDIT2: 看到避免警告
每次POST值不等于数组中设置的值列表时,将返回:未定义的索引错误,我做了一个if语句但是没有工作.
这是if语句: if ($products[$_POST['product']] == $_POST['product']) { do everything;} else { echo "This item is not available"; } EDIT2: 看到避免警告的当前情况不会有太大帮助,因为我正在处理几个因素,例如购物车中的项目列表,如果未删除无效产品,它将被添加到购物清单会话中. 这是完整的脚本: <?php session_start(); //Getting the list $_SESSION['list'] = isset($_SESSION['list']) ? $_SESSION['list'] : array(); //stock $products = array( 'Pineaple' => 500,'Banana' => 50,'Mango' => 150,'Milk' => 500,'Coffe' => 1200,'Butter' => 300,'Bread' => 450,'Juice' => 780,'Peanuts' => 800,'Yogurt' => 450,'Beer' => 550,'Wine' => 2500,); if( isset($_POST['product']) ){ //Saving the stuff $new_item = array( 'item' => $_POST['product'],'quantity' => $_POST['quantity'],'code' => $_POST['code'],'price' => $products[$_POST['product']] * $_POST['quantity'],); $new_product = true; foreach($_SESSION['list'] as $key => $item) { if ($item['item'] == $new_item['item']) { $_SESSION['list'][$key]['quantity'] += $new_item['quantity']; $_SESSION['list'][$key]['price'] = $products[$new_item['item']] * $new_item['quantity']; $new_product = false; } } if ($new_product) { $_SESSION['list'][] = $new_item; } /*if ($new_item['item'] != $products[$new_item['item']]) { echo "This item is not available";}*/ //listing echo "<b>SHOPPING LIST</b></br>"; foreach($_SESSION['list'] as $key => $item) { echo 'Product .'. $key. ' '. $item['item'],' ',$item['quantity'],' units: ',$item['price']. '<br />'; } } else { echo "This item is not available"; } echo "</br> <a href='index.html'>Return to index</a> </br>"; //Printing session var_dump($_SESSION); session_destroy(); ?>
我对你的代码感到有点困惑.看起来您的数组具有相同的键和值,因此:
$products['saucepan'] = 'saucepan' 也许您正在尝试这样做,这将检查产品数组中是否存在产品: if(isset($_POST['product']) && array_key_exists($_POST['product'],$products)) { // do stuff } else { echo "This item is not available"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |