我想知道编写以下PHP代码的最佳和最有效的方法是什么?
if ($av == 1) echo '/images/1-star.png';
if ($av > 1 && < 2) echo '/images/1-half-star.png';
if ($av == 2) echo '/images/2-star.png';
if ($av > 2 && < 3) echo '/images/2-half-star.png';
Run Code Online (Sandbox Code Playgroud)
遵循同样的模式,最多5星.
这可能不是最有效的方式。但我发现它是干净的代码。检查这个。
function renderStarRating($rating,$maxRating=5) {
$fullStar = "<li><i class = 'fa fa-star'></i></li>";
$halfStar = "<li><i class = 'fa fa-star-half-full'></i></li>";
$emptyStar = "<li><i class = 'fa fa-star-o'></i></li>";
$rating = $rating <= $maxRating?$rating:$maxRating;
$fullStarCount = (int)$rating;
$halfStarCount = ceil($rating)-$fullStarCount;
$emptyStarCount = $maxRating -$fullStarCount-$halfStarCount;
$html = str_repeat($fullStar,$fullStarCount);
$html .= str_repeat($halfStar,$halfStarCount);
$html .= str_repeat($emptyStar,$emptyStarCount);
$html = '<ul>'.$html.'</ul>';
return $html;
}
Run Code Online (Sandbox Code Playgroud)
就像这样使用:
$n = is_int($av) ? $av : floor($av) + 0.5;
echo '/images/'.$n.'-star.png';
Run Code Online (Sandbox Code Playgroud)

每行剪切图像并将其命名为"1-star.png","1.5-star.png","2-star.png","2.5-star.png","3-start.png","3.5- star.png"依此类推......
| 归档时间: |
|
| 查看次数: |
5859 次 |
| 最近记录: |