PHP非数字值警告

时间:2017-09-06 18:35:27

标签: php

我收到以下错误:

  

警告:遇到非数字值

有没有人有解决方案? (我是初学者。)

修改

以下是代码:

while($r = mysqli_fetch_row($result))
{
    $items[] = $r;              
}

$itemArray = array($items[0][0]=>array('Proid' => $items[0][0], 
    'name'=>$items[0][1], 'brand'=>$items[0][2], 'desc'=>$items[0][3], 
    'quan'=>$_POST["quantity"], 'price'=>$items[0][4], 'image'=> $items[0][5]));

$_SESSION['cart'] += $itemArray;

$i = $item['Proid'];    
$tp = $item['quan'] * $item['price'];
$tp2 += $tp;

2 个答案:

答案 0 :(得分:0)

您的某些值可能是$(document).ready(function() { $("#quotebtn").on('click', function(e) { e.preventDefault(); $.ajax({ type: 'GET', url: 'http://quotes.stormconsultancy.co.uk/random.json', success: function(data) { var post = data.quote; //get the first quote $('#quote').html(post); //change the html to the quote }, cache: false }); }) }) ,而不是stringinteger

要确保使用

intval() to convert a string to integer

floatval() to convert a string to float

这只是一个警告,php会尝试在幕后转换它,但如果可能不准确,例如,如果你使用float作为小数点分隔符,或者你使用了几千个分隔符。

答案 1 :(得分:0)

如果遇到非数字值,不确定您使用的是哪个PHP版本,但会发出警告。请参阅此link

所以你可以做的是在做计算之前确保检查实体是否是数字,为此你可以使用is_numeric()PHP函数。

例如在您的情况下:

Xs =  ['0.000000000000E+00', '3.333333333333E-01', '-4.079267158859E-01', '0.000000000000E+00', '3.333333333333E-01', '-4.090760942850E-01', '0.000000000000E+00', '3.333333333333E-01', '-4.093755657782E-01']
Ys =  ['0.000000000000E+00', '-3.333333333333E-01', '-3.333333333333E-01', '0.000000000000E+00', '-3.333333333333E-01', '-3.333333333333E-01', '0.000000000000E+00', '-3.333333333333E-01', '-3.333333333333E-01']
Zs =  ['0.000000000000E+00', '-8.333333333333E-02', '-8.333333333333E-02', '0.000000000000E+00', '-8.333333333333E-02', '-8.333333333333E-02', '0.000000000000E+00', '-8.333333333333E-02', '-8.333333333333E-02']
ATOMIC_NUMBERS =  ['20', '6', '8', '20', '6', '8', '20', '6', '8']