为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 foreach 函数或变量初始化为 0

如何将 foreach 函数或变量初始化为 0

PHP
暮色呼如 2021-08-27 09:30:00
使用最新版本的 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);

  }


查看完整回答
反对 回复 2021-08-27
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

作为更(IMO)合适的解决方案,如果这是您在该循环中的唯一操作,则可以使用 array_sum()

array_sum — 计算数组中值的总和

例子:

$meQty = array_sum($yourArray);


查看完整回答
反对 回复 2021-08-27
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信