循环中遇到的非数字值

时间:2019-02-10 20:39:51

标签: php

我的脚本中出现此错误

Warning: A non-numeric value encountered

该行是:

$new_shipping_weight += $shipping_weight;

我的代码

if ($shipping_weight <= 0 || is_null($shipping_weight)) $shipping_weight = 0.1;

var_dump(is_numeric($shipping_weight));

$new_shipping_weight += $shipping_weight;

var_dump(is_numeric($new_shipping_weight));

结果:

bool(true) 


Warning: A non-numeric value encountered in 


bool(true)

问题出在哪里?

谢谢。

2 个答案:

答案 0 :(得分:0)

任务$new_shipping_weight += $shipping_weight扩展到

$new_shipping_weight = $new_shipping_weight + $shipping_weight;

因此,两个运算符都必须为非数字。赋值之前$new_shipping_weight很可能不是数字。它将被视为0,但发出警告是为了提醒您。

尝试使用此代码,您将获得相同的结果,$a在分配之前为非数字,在分配之后为数字。您还将看到警告:

$a = '';
$b = 1;
var_dump(is_numeric($a));
$a += $b;
var_dump(is_numeric($a));

答案 1 :(得分:-2)

sample_list

尝试这个或     $ new_shipping_weight = is_numeric($ shipping_weight)+ is_numeric($ new_shipping_weight);