警告:遇到非数值

php
2022-08-30 06:38:16

最近更新到 PHP 7.1 并开始收到以下错误

警告:在第 29 行中遇到的非数值

这是第29行的样子

$sub_total += ($item['quantity'] * $product['price']);

在本地主机上,一切都很好。

任何想法如何解决这个问题或它是什么?


答案 1

不完全是您遇到的问题,但对于搜索的人来说,同样的错误。

当我在JavaScript上花费太多时间时,这种情况就发生在我身上。

回到PHP,我将两个字符串连接起来,而不是,并得到了这个错误。+.


答案 2

似乎在 PHP 7.1 中,如果遇到非数值,则会发出警告。请参阅此链接

以下是与您收到的警告通知相关的相关部分:

当使用期望数字或其赋值等效项的运算符强制执行无效字符串时,引入了新的E_WARNING和E_NOTICE错误。当字符串以数值开头但包含尾随的非数字字符时,将发出E_NOTICE;当字符串不包含数值时,将发出E_WARNING。

我猜要么是$item['数量'],要么$product['price']不包含数值,所以在尝试将它们相乘之前,请确保它们包含数值。也许在计算$sub_total之前使用某种条件,如下所示:

<?php

if (is_numeric($item['quantity']) && is_numeric($product['price'])) {
  $sub_total += ($item['quantity'] * $product['price']);
} else {
  // do some error handling...
}

推荐