我有这个功能,它取一个项目的平均用户评级并将其转换为相关的类:
function get_user_rating_class($urate_ave){
if($urate_ave==='0.0'){
$user_rating_class='unrated_u';
}else{
$round_to = 0.5;
$rounded = round($urate_ave / $round_to) * $round_to;
$removedec = str_replace('.','',$rounded);
if(strlen($removedec)<2){$removedec.'0';}
$user_rating_class='rating_user_'+$removedec;
}
return $user_rating_class;
}
Run Code Online (Sandbox Code Playgroud)
不,当我把一个值,比如说3.0放到函数中时它应该作为rating_user_30出来,而不是它作为rating_user_3出来,所以这一行肯定有问题:
if(strlen($removedec)<2){$removedec.'0';}
我认为这可能是因为它将值$ removedec视为一个数字而不是一个字符串,所以我尝试在它之前添加这一行,但没有改变:
$removedec = strval($removedec);
Run Code Online (Sandbox Code Playgroud)
有人能告诉我这里做错了什么.
您应该使用.=而不是.将值附加到字符串并将变量设置为该值.单独的点运算符将附加值,但不会更改变量的值.
$removedec .= '0';
Run Code Online (Sandbox Code Playgroud)