【发布时间】:2018-02-18 20:24:08
【问题描述】:
这两个函数是基于一个产品分类系统,基于0.5到5分的投票,即:(0.5, 1, 1.5, 2, 2.5 3, 3.5, 4, 4.5, 5)。
但是数学或算术计算是如何工作的呢?
function calculate_stars($rating){
// step starting from 0
return (($rating/0.5)-1);
}
这告诉我们它是如何工作的:
function display_star($rating){
$output="";
$step = calculate_stars($rating);
$output ='<ul class="c-rating">';
for ($i=0;$i<10;$i++)
{
$class = '';
if($i<=$step) $class = ' is-active';
if($i%2 == 0) $class .= ' left';
$output .= '<li class="c-rating__item'. $class.'" data-index="'.$i.'"></li>';
}
$output .='</ul>';
return $output;
}
echo display_star(0.5);
您能解释一下每个算术或数学过程,以了解和了解这些函数如何正确工作吗?
【问题讨论】:
-
出于某种原因,它将 4.5 变成 8 个“步骤”,然后打印 html 以表示半星。它通过检查每个步骤是否被 2 整除来做到这一点。
-
calculate_stars() 中的 4.5 / 0.5 等于 9 减 1 是 8 的最终结果——这在数学上是正确的。
-
它还将把 0.5 星变成 0 步,将 0 星变成 -1