我已经阅读了许多其他文章,讨论了遇到此非数字值的错误,但不幸的是,我可能很忙。我不确定如何解决此烦人的错误。
这是我的代码块:
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];
非常感谢您的帮助。
答案 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";