使用最新版本的 PHP 7,我显示以下错误消息:警告:遇到非数字值似乎在 PHP 7.1 中,如果遇到非数字值,则会发出警告。它说为了避免这些错误,我必须初始化为 0。当使用 forech 时,他们可以向我解释如何做到这一点。$meQty = 0;foreach ($qty as $id_courses => $valueqty) { $meQty = $meQty + $valueqty;}错误行: $meQty = $meQty + $valueqty;购物车.php<?php $items = (isset($_SESSION['cart']) && is_array($_SESSION['cart'])) ? $_SESSION['cart'] : array(); $itemCount = count($items); $qty = (isset($_SESSION['qty']) && is_array($_SESSION['qty'])) ? $_SESSION['qty'] : array(); $couponDiscount = (isset($_SESSION['couponCode'])); $total = 0; $num = 1; $meQty = 0; $itemId = ""; $meCount = $itemCount; foreach ($qty as $id_courses => $valueqty) { $meQty = $meQty + $valueqty; } foreach ($items as $id_courses => $item) { $itemId = $itemId . $item . ","; } $array = explode(',', $itemId); $strMarcas = str_repeat('?,', count($array) - 1) . '?'; $strTipos = str_repeat('i', count($array)); $stmt = $con->prepare("SELECT id_courses, courses, image, price FROM courses WHERE id_courses in ($strMarcas)"); $stmt->bind_param($strTipos, ...$array); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($id_courses, $courses, $image, $price);产品添加到购物车没有问题使用var_dump($_SESSION['qty']);显示我array(1) { [0]=> int(1) }
2 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
您应该为 foreach 之外的变量分配适当的值
$meQty = 0;
foreach ($qty as $id_courses => $valueqty) {
$meQty = $meQty + $valueqty;
}
您还可以检查有效的数字内容
foreach ($qty as $id_courses => $valueqty) {
$meQty = ( is_numeric($valueqty) ? ($meQty + $valueqty ) : ($meQty +0);
}
凤凰求蛊
TA贡献1825条经验 获得超4个赞
作为更(IMO)合适的解决方案,如果这是您在该循环中的唯一操作,则可以使用 array_sum()
array_sum — 计算数组中值的总和
例子:
$meQty = array_sum($yourArray);
- 2 回答
- 0 关注
- 178 浏览
添加回答
举报
0/150
提交
取消