Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 写if-else范围检查器的可伸缩方式_Php_If Statement - Fatal编程技术网

Php 写if-else范围检查器的可伸缩方式

Php 写if-else范围检查器的可伸缩方式,php,if-statement,Php,If Statement,我有一个函数,它接收一个变量,然后检查数字,如果数字在它输出文本的范围内,我正在寻找一种更好的方法来编写它,这样,如果客户希望在将来扩展它,我就不必写数百万行-代码如下: function scale_filter($scale) { if($scale <= 949) { return $scale . ' kWp'; } elseif($scale >= 950 && $scale <= 1049) { return '1.0 MWp'; }

我有一个函数,它接收一个变量,然后检查数字,如果数字在它输出文本的范围内,我正在寻找一种更好的方法来编写它,这样,如果客户希望在将来扩展它,我就不必写数百万行-代码如下:

function scale_filter($scale) {
if($scale <= 949) {
    return $scale . ' kWp';
} elseif($scale >= 950 && $scale <= 1049) {
    return '1.0 MWp';
} elseif($scale >= 1050 && $scale <= 1149) {
    return '1.1 MWp';
} elseif($scale >= 1150 && $scale <= 1249) {
    return '1.2 MWp';
} elseif($scale >= 1250 && $scale <= 1349) {
    return '1.3 MWp';
} elseif($scale >= 1350 && $scale <= 1449) {
    return '1.4 MWp';
} elseif($scale >= 1450 && $scale <= 1549) {
    return '1.5 MWp';
} elseif($scale >= 1550 && $scale <= 1649) {
    return '1.6 MWp';
} elseif($scale >= 1650 && $scale <= 1749) {
    return '1.7 MWp';
} elseif($scale >= 1750 && $scale <= 1849) {
    return '1.8 MWp';
} elseif($scale >= 1850 && $scale <= 1949) {
    return '1.9 MWp';
} elseif($scale >= 1950 && $scale <= 2049) {
    return '2.0 MWp';
} elseif($scale >= 2050 && $scale <= 2149) {
    return '2.1 MWp';
} elseif($scale >= 2150 && $scale <= 2249) {
    return '2.2 MWp';
} elseif($scale >= 2250 && $scale <= 2349) {
    return '2.3 MWp';
} elseif($scale >= 2350 && $scale <= 2449) {
    return '2.4 MWp';
} elseif($scale >= 2450 && $scale <= 2549) {
    return '2.5 MWp';
} elseif($scale >= 2550 && $scale <= 2649) {
    return '2.6 MWp';
} elseif($scale >= 2650 && $scale <= 2749) {
    return '2.7 MWp';
} elseif($scale >= 2750 && $scale <= 2849) {
    return '2.8 MWp';
} elseif($scale >= 2850 && $scale <= 2949) {
    return '2.9 MWp';
} elseif($scale >= 2950 && $scale <= 3049) {
    return '3.0 MWp';
} //.... you get the idea
function scale\u过滤器($scale){

如果($scale=950&&$scale=1050&&$scale=1150&&$scale=1250&&$scale=1350&&$scale=1450&&$scale=1650&&$scale=1750&&$scale=1850&&$scale=1950&&$scale=2050&&$scale=2150&&$scale=2250&$scale=2350&&$scale=2450&&$scale=2550&&$scale=2650&&$scale=2750&&$scale=2850&&$scale=2950&&$scale您可以使用数学函数来获得该值,而不是使用其他函数

很简单,这与您的代码完全相同:

function scale_filter($scale) {
  if($scale <= 949) {
    return $scale . ' kWp';
  } elseif($scale >= 950 && $scale <= 3049) {
    return round($scale/1000,1) . ' MWp';
  }
}
function scale\u过滤器($scale){

如果($scale=950&&$scale看看switch语句。使用round如何避免我为每个$scale范围写新行?如答案中所述……如果不是您想要的,请更准确地说明您的问题。抱歉,我刚刚测试了您编写的代码及其输出的scale+MWp。例如,我将scale设置为3040,它应该是3.0兆瓦。它是3040兆瓦。对不起,我的错。我忘了把$scale除以1000。现在修好了