Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将foreach函数或变量初始化为0_Php - Fatal编程技术网

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

Php 如何将foreach函数或变量初始化为0,php,Php,使用最新版本的PHP 7,我将显示以下错误消息: 警告:遇到非数字值 在PHP7.1中,如果遇到非数字值,将发出警告 它说为了避免这些错误,我必须初始化为0 当使用止赎时,他们可以向我解释怎么做 $meQty = 0; foreach ($qty as $id_courses => $valueqty) { $meQty = $meQty + $valueqty; } 错误行:$meQty=$meQty+$valueqty cart.php <?php $items

使用最新版本的PHP 7,我将显示以下错误消息:

警告:遇到非数字值

在PHP7.1中,如果遇到非数字值,将发出警告

它说为了避免这些错误,我必须初始化为0

当使用止赎时,他们可以向我解释怎么做

$meQty = 0;
foreach ($qty as $id_courses => $valueqty) {
    $meQty = $meQty + $valueqty;
}
错误行:
$meQty=$meQty+$valueqty

cart.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);

您应该为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);
  }

您应该为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);
  }
作为一个更(IMO)合适的解决方案,如果这是您在该循环中的唯一操作,您可以使用
array\u sum()

array_sum-计算数组中的值之和

例如:

$meQty = array_sum($yourArray);
作为一个更(IMO)合适的解决方案,如果这是您在该循环中的唯一操作,您可以使用
array\u sum()

array_sum-计算数组中的值之和

例如:

$meQty = array_sum($yourArray);

如果我使用值0初始化此变量,但错误一直显示我已编辑问题并添加了Cart的所有操作,则$valueqty中没有有效的数字。。您应该更好地检查输入内容客户端。我该怎么做?如果我用值0初始化此变量,但错误一直显示我已编辑了我的问题并添加了Cart的所有操作,那么您在$valueqty中没有有效的数字。。你应该更好地检查客户端的输入内容。我该怎么做?评论不用于扩展讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。