在php中进行求和时如何处理空值
我有以下数据,我试图对总票价进行汇总,但php不断抛出此错误在php中进行求和时如何处理空值,php,Php,我有以下数据,我试图对总票价进行汇总,但php不断抛出此错误警告:在.. $read_one_vehicle_response = ' { "response_code": 0, "response_message": "Request processed succ
警告:在..
$read_one_vehicle_response = '
{
"response_code": 0,
"response_message": "Request processed successfully",
"id": "1",
"ticket": [
{
"id": "1",
"total_fare": "1000",
"status": "Paid"
},
{
"id": "2",
"total_fare": "80",
"status": "Paid"
},
{
"id": null,
"total_fare": null,
"status": null
}
],
"created": "2020-09-12 15:42:29",
"modified": "2020-09-12 20:42:29",
"status": "Active"
}';
$income = "";
foreach (json_decode($read_one_vehicle_response, true)["ticket"] as $ticket) {
if (is_numeric($ticket{"total_fare"})) {
$total_fare = $ticket{"total_fare"};
}
else {
$total_fare = 0.00;
}
$income += $total_fare;
}
echo "Total: $income";
我已经尝试了上面的方法,它正确地将数字相加,但仍然不断抛出错误。处理此错误的正确方法是什么?I在do(+)之前转换为float或int类型。尝试: 如果您的数据不能转换为float,它将是0 使用PHP的另一种方法:
更多信息和讨论请参见SO about您正在添加字符串值,并将其转换为浮点值
$income = floatval(0);
foreach (json_decode($read_one_vehicle_response, true)["ticket"] as $ticket) {
if (is_numeric($ticket{"total_fare"})) {
$total_fare = floatval($ticket{"total_fare"});
}
else {
$total_fare = 0.00;
}
$income += $total_fare;
}
echo "Total: $income";
你可以直接做,
$income = 0;
foreach (json_decode($read_one_vehicle_response, true)["ticket"] as $ticket) {
$total_fare = (float) $ticket{"total_fare"};
$income += $total_fare;
}
echo "Total: $income";
总票价为10英镑
$income = floatval(0);
foreach (json_decode($read_one_vehicle_response, true)["ticket"] as $ticket) {
if (is_numeric($ticket{"total_fare"})) {
$total_fare = floatval($ticket{"total_fare"});
}
else {
$total_fare = 0.00;
}
$income += $total_fare;
}
echo "Total: $income";
$income = 0;
foreach (json_decode($read_one_vehicle_response, true)["ticket"] as $ticket) {
$total_fare = (float) $ticket{"total_fare"};
$income += $total_fare;
}
echo "Total: $income";