编写php函数的更好方法

编写php函数的更好方法,php,function,Php,Function,我在下面编写了这个ratings函数,我想知道它是否可以变得更小/更简单或更好地编码,它使用的是基于调用函数中的百分比数字显示的图像 function rating( $number ) { if ($number >= .0 && $number <= .099999) { $star = '<img src="images/0.gif" alt="' . $number . '" />'; } if ($number >= .10 &a

我在下面编写了这个ratings函数,我想知道它是否可以变得更小/更简单或更好地编码,它使用的是基于调用函数中的百分比数字显示的图像

function rating( $number ) {

if ($number >= .0 && $number <= .099999) { 
  $star = '<img src="images/0.gif" alt="' . $number . '" />';
}

if ($number >= .10 && $number <= .199999){
  $star = '<img src="images/10.gif" alt="' . $number . '" />';
}

if ($number >= .20 && $number <= .299999){
  $star = '<img src="images/20.gif" alt="' . $number . '" />';
}

if ($number >= .30 && $number <= .399999){
  $star = '<img src="images/30.gif" alt="' . $number . '" />';
}

if ($number >= .40 && $number <= .499999){
  $star = '<img src="images/40.gif" alt="' . $number . '" />';
}

if ($number >= .50 && $number <= .599999){
  $star = '<img src="images/50.gif" alt="' . $number . '" />';
}

if ($number >= .60 && $number <= .699999) { 
  $star = '<img src="images/60.gif" alt="' . $number . '" />';
}

if ($number >= .70 && $number <= .799999){
  $star = '<img src="images/70.gif" alt="' . $number . '" />';
}

if ($number >= .80 && $number <= .899999){
  $star = '<img src="images/80.gif" alt="' . $number . '" />';
}

if ($number >= .90 && $number <= .999999){
  $star = '<img src="images/90.gif" alt="' . $number . '" />';
}

if ($number > .999999){
  $star = '<img src="images/100.gif" alt="' . $number . '" />';
}

return $star;
}

当然,这只需要一点数学知识

function rating($number) {
    return '<img src="images/' . floor($number * 10) * 10 . '.gif" alt="' . $number . '" />';
}
功能等级($number){
返回“”;
}

当然,这只需要一点数学知识

function rating($number) {
    return '<img src="images/' . floor($number * 10) * 10 . '.gif" alt="' . $number . '" />';
}
功能等级($number){
返回“”;
}

您熟悉开关功能吗?它不会工作得更快,但从语义上讲,标记会更容易阅读。@SableFoste:在这种情况下,它可能会工作得更快,即使只是非常小的数量。OP每次都在检查每个条件,而
开关
会优化一点(如果构造,则更接近
否则)。@SableFoste:我对开关很熟悉,但我会怎么做,我的意思是,情况会怎样?请参阅下面的@minitech解决方案。如果使用开关,可以使用类似的开关/地板组合。但他的功能确实是最简洁的,最能回答你的问题。你熟悉开关功能吗?它不会工作得更快,但从语义上讲,标记会更容易阅读。@SableFoste:在这种情况下,它可能会工作得更快,即使只是非常小的数量。OP每次都在检查每个条件,而
开关
会优化一点(如果
构造,则更接近
否则)。@SableFoste:我对开关很熟悉,但我会怎么做,我的意思是,情况会怎样?请参阅下面的@minitech解决方案。如果使用开关,可以使用类似的开关/地板组合。但他的函数实际上是最简洁的,最能回答你的问题。这是最简洁的解决方案。当然,您总是可以扭转这种情况,使用ceil()。这是最紧凑的解决方案。当然,您始终可以扭转这种情况并使用ceil()。