我的php计算没有显示结果

我有一个非常愚蠢的问题。我正在从 mysql 中提取收入和支出的总额,然后我想从收入中减去支出。由于某种原因,结果不是剩下的,而是显示了收入数字 - 支出数字。


代码如下


function total_by_type_between_dates($type, $start, $end){

    global $uc_con;

    $start  = strtotime ($start);

    $end    = strtotime ($end);

    $sql    = "SELECT SUM(amount) AS total FROM account WHERE `time` > $start && `time` < $end &&  `type` = '$type'";

    $result = $uc_con->query($sql);

    $row    = $result->fetch_array(MYSQLI_ASSOC);

    $total  = number_format((float)$row['total'], 2, '.', '');

    echo $total;

}


function total_expense_between_dates($start, $end){

    global $uc_con;

    $start  = strtotime ($start);

    $end    = strtotime ($end);

    $sql    = "SELECT SUM(amount) AS total FROM account WHERE `time` > $start && `time` < $end && `type` != 'income' && `type` != 'mileage'";

    $result = $uc_con->query($sql);

    $row    = $result->fetch_array(MYSQLI_ASSOC);

    $total  = number_format((float)$row['total'], 2, '.', '');

    return $total;

}


echo total_by_type_between_dates('income', $date_begining, $date_ending)-total_expense_between_dates($date_begining, $date_ending);

奇怪的是结果显示如下:2770.69-407.42而不是2363.29


谁能告诉我可能是什么原因造成的


皈依舞
浏览 219回答 1
1回答

狐的传说

您的total_by_type_between_dates函数正在回显其结果而不是返回它。所以你的echo&nbsp;total_by_type_between_dates('income',&nbsp;$date_begining,&nbsp;$date_ending)-total_expense_between_dates($date_begining,&nbsp;$date_ending);有效地echo&nbsp;total_by_type_between_dates('income',&nbsp;$date_begining,&nbsp;$date_ending); echo&nbsp;null-total_expense_between_dates($date_begining,&nbsp;$date_ending);并且null在数字上下文中被视为 0,因此您看到的结果是:2770.69-407.42改变echo&nbsp;$total;在total_by_type_between_dates到return&nbsp;$total;并且代码将按预期工作。3v4l.org 上的精简演示
打开App,查看更多内容
随时随地看视频慕课网APP