如何解决“ PHP警告:遇到非数字值”错误?

时间:2018-10-10 05:19:46

标签: php

我已经阅读了许多其他文章,讨论了遇到此非数字值的错误,但不幸的是,我可能很忙。我不确定如何解决此烦人的错误。

这是我的代码块:

 foreach ($local_words as $local_word_to_check){

                $letters = mb_str_split($local_word_to_check);
                $letters = array_map( 'addslashes', $letters );

                $local_total_letter_box_length = "";

                $query2 = "SELECT GROUP_CONCAT(Alpha) AS Alpha,
                                 GROUP_CONCAT(Letter_Box_Width) AS Letter_Box_Width
                          FROM Font_Krinkes
                          WHERE Alpha IN ('" . implode("','", $letters) . "')";

                $result2 = mysqli_query($con, $query2) or die("unable to query database!");

                if ($row = mysqli_fetch_assoc($result2)) {
                    $widths = array_combine(explode(',', $row['Alpha']), explode(',', $row['Letter_Box_Width']));
                    $total_word_box_width = 0;
                    foreach (mb_str_split($local_word_to_check) as $letter) {
                        $local_total_letter_box_length += $widths[$letter];
                    }
                }

                $complete_font_values[] = $local_total_letter_box_length;  

                unset($letters);
        }

此行发生错误:

$local_total_letter_box_length += $widths[$letter];

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

$local_total_letter_box_length = "";是首次声明的字符串。

$local_total_letter_box_length += $widths[$letter]

这不是在php中连接字符串的方式。

使用.=进行连接。


如果要增加数值,请使用0声明变量。

+=可以用于数值和数组。

代码:(Demo

$integer = 5;
$integer += 10;
echo $integer , "\n---\n";


$array = ['good' => 'one'];
$array += ['two'];
var_export($array);

输出:

15
---
array (
  'good' => 'one',
  0 => 'two',
)

答案 1 :(得分:1)

使用

$local_total_letter_box_length = 0; 

代替

$local_total_letter_box_length = "";

答案 2 :(得分:0)

在大多数情况下,与其他语言一样,将"+"用作字符串连接运算符时会发生此错误,但是在PHP字符串连接运算符为"."中,如果您将数字值用作字符串,则必须将其强制转换像$num = (int) "10" + (int) "20";