PHP实现5星评分:按评分输出填充与空心星星的循环问题
解决PHP/Laravel中的五星评分星星动态显示问题
嘿,我明白你想要实现的效果——根据指定的评分值,自动展示对应数量的填充星星和剩余的空心星星。你当前的代码只是循环输出了填充星星,我们只需要加个简单的条件判断就能搞定!
这里是修改后的完整代码,适配你用的Laravel Blade语法:
@php $rating = 3; // 可以替换成你的实际评分变量 @endphp @for($x = 1; $x <= 5; $x++) @if($x <= $rating) <!-- 填充星星 --> <img src="{{ URL::asset('assets/star.png') }}" alt="填充星星"> @else <!-- 空心星星 --> <img src="{{ URL::asset('assets/ustar.png') }}" alt="空心星星"> @endif @endfor
代码解释:
- 我们在循环里加了一个
@if判断:当循环变量$x小于等于你的评分值$rating时,输出填充星星的图片; - 当
$x超过评分值时,就输出空心星星的图片; - 比如你设置
$rating = 3,循环会执行5次:前3次输出star.png,后2次输出ustar.png,完全符合你的需求。
如果你的评分可能包含小数(比如3.5分需要半星),可以再扩展判断逻辑,比如用floor($rating)处理整数部分,再判断是否有小数部分来输出半星图片,不过如果只是整数评分的话,上面的代码就足够啦!
内容的提问来源于stack exchange,提问作者Zack
相关产品推荐
相关产品推荐

