最近更新到PHP 7.1,并开始出现以下错误
警告:第29行遇到非数字值
这是第29行的样子
$sub_total += ($item['quantity'] * $product['price']);
在本地主机上一切正常。
任何想法如何解决这个问题或它是什么?
似乎在PHP 7.1中,如果遇到非数字值,将发出警告。请参阅此链接。
这是与您收到的警告通知有关的相关部分:
当使用期望数字或它们的赋值等效项的运算符强制无效字符串时,将引入新的E_WARNING和E_NOTICE错误。当字符串以数字开头但包含尾随非数字字符时,将发出E_NOTICE;而 当字符串不包含数字值时,将发出E_WARNING。
我猜 $ item [‘quantity’] 或 $ 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... }