我有这个功能,它取一个项目的平均用户评级并将其转换为相关的类:
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;
}
没有,当我把一个值,比如说3.0放到函数中它应该作为rating_user_30出来,而是它作为rating_user_3出来,所以这一行肯定有问题:
if(strlen($removedec)<2){$removedec.'0';}
我认为这可能是因为它将值$ removedec视为数字而不是字符串,所以我尝试在它之前添加此行,但没有更改:
$removedec = strval($removedec);
有人可以告诉我这里我做错了什么。
答案 0 :(得分:9)
您应该使用.=
代替.
将值附加到字符串并将变量设置为该值。单独的点运算符将附加值,但不会更改变量的值。
$removedec .= '0';
答案 1 :(得分:1)
是的,你说错了,你忘了分配价值,如下:
if(strlen($removedec)<2){$removedec=$removedec.'0';}
答案 2 :(得分:0)
假设有一个整数变量,你不知道该值是什么:
$var = 0;
$str = "var is : " . ($var?$var:'0');
附加字符串末尾的值。