Здається, що в PHP 7.1 буде видано попередження, якщо зустрінеться нечислове значення. Дивіться це посилання .
Ось відповідна частина, що стосується попередження, яке ви отримуєте:
Нові помилки E_WARNING та E_NOTICE були введені, коли недійсні рядки примушуються за допомогою операторів, які очікують числа або їх еквіваленти присвоєння. E_NOTICE випускається, коли рядок починається з числового значення, але містить кінцеві нечислові символи, і
E_WARNING видається, коли рядок не містить числового значення.
Я здогадуюсь, що ні $ item ['кількість'], ні $ 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...
}
var_dump($item['quantity'], $product['price'])