PHP用于评估百分比变化的函数

时间:2017-06-06 01:19:15

标签: php

我正在尝试构建一个评估两个数字的函数,并查看是否发生了百分比变化。

// $live_data = data pulled from an API - ex: .000121231 or 2500.00
// $pervious_data = data pulled from a DB - ex: .0001231 or 11111.00
// $alert_data['value'] = data pulled from a DB - ex: 10 or -10

function percent_change_eval($data, $alert_data, $previous, $currency){
  $live_data = (float)$data[$currency][$alert_data['comparison']];
  $previous_data = (float)$previous[$alert_data['comparison']];
  $percent = round((($live_data) - ($previous_data)) / ($previous_data) * 100, 10);
  switch($alert_data['operator']) {     
    case ">=":
        if($percent > $alert_data['value']){
            return TRUE;
        } else {
            return FALSE;
        }
        break 1;
    case "<=":
        if($percent < $alert_data['value']){
            return TRUE;
        } else {
            return FALSE;
        }
        break 1;
  }
}

我已经构建了这个函数,但由于某些原因它不应该抛出true。我假设它与数字太大或太小或者其中一个变量为空有关。

有任何建议或帮助吗?

1 个答案:

答案 0 :(得分:0)

本身不是答案,但我讨厌switch个案例。花了16行代码! 我只用两行重写它:

if($alert_data['operator'] == '>=') return $percent > $alert_data['value']);
if($alert_data['operator'] == '<=') return $percent < $alert_data['value']);

看起来更清洁,更不用说犯错误的地方