Php laravel 5.5中遇到的格式不正确的数值
我有这个密码Php laravel 5.5中遇到的格式不正确的数值,php,laravel-5,Php,Laravel 5,我有这个密码 private function calculateDefferedRevenue($price, $sub) { $defferedrevenue = '0.00'; if ($sub->has('fulfillment') && is_object($sub->fulfillment)) { $fulfillments = $sub->fulfillment; foreach ($fulfil
private function calculateDefferedRevenue($price, $sub)
{
$defferedrevenue = '0.00';
if ($sub->has('fulfillment') && is_object($sub->fulfillment)) {
$fulfillments = $sub->fulfillment;
foreach ($fulfillments as $key => $fulfillment) {
if ($fulfillment->has('shipments') && !is_null($fulfillment->shipments)) {
$counts = self::countShipments($fulfillment->shipments);
if (!empty($price) && $counts['shipmentCount'] > 0) {
$shippingFee = self::getShippingFee($sub);
$shippingFees = $counts['unshippedCount'] * $shippingFee;
$price = self::deductUsingCoupon($price, $sub);
$eachShipmentAmount = $price / $counts['shipmentCount'];
$revenue = $eachShipmentAmount * $counts['unshippedCount'];
$revenue = $revenue + $shippingFees;
$defferedrevenue = $defferedrevenue + $revenue;
$defferedrevenue = number_format($defferedrevenue, 2);
}
}
}
}
return $defferedrevenue;
}
这些是sentry在运行laravel队列作业中的行A之后返回的值集
{
counts: {
shipmentCount: 4,
shippedCount: 1,
unshippedCount: 3
},
defferedrevenue: 1,049.25,
eachShipmentAmount: 349.75,
key: 1,
price: 1399.00,
revenue: 1049.25,
shippingFee: 0.00,
shippingFees: 0,
sub: Object Subscription
}
为什么php在这一行中说遇到了格式不正确的数值
$defferedrevenue = $defferedrevenue + $revenue;
您在此处使用的是
number\u format()
,这可能会添加逗号:
$defferedrevenue = $defferedrevenue + $revenue;
$defferedrevenue = number_format($defferedrevenue, 2);
因此,在下一次循环迭代中,您可能会得到如下结果:
$defferedrevenue = "1,234" + 1;
这会生成一个通知,因为“1234”是一个不能自动解释为数字的字符串。只需从循环内部去掉number\u format()
行,并将其放在循环结束后:
return number_format($defferedrevenue, 2);
您在此处使用的是
number\u format()
,这可能会添加逗号:
$defferedrevenue = $defferedrevenue + $revenue;
$defferedrevenue = number_format($defferedrevenue, 2);
因此,在下一次循环迭代中,您可能会得到如下结果:
$defferedrevenue = "1,234" + 1;
这会生成一个通知,因为“1234”是一个不能自动解释为数字的字符串。只需从循环内部去掉number\u format()
行,并将其放在循环结束后:
return number_format($defferedrevenue, 2);