2

我有这个函数,它获取给予项目的平均用户评分并将其转换为相关类:

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);

有人可以告诉我我在这里做错了什么。

4

3 回答 3

9

您应该使用.=而不是.将值附加到字符串并将变量设置为该值。单独的点运算符将附加值但不会更改变量的值。

$removedec .= '0';
于 2012-10-02T12:50:58.363 回答
1

是的,您是对的,那行是错误的,您忘记分配值,如下所示:

if(strlen($removedec)<2){$removedec=$removedec.'0';}
于 2012-10-02T12:51:26.673 回答
0

假设有一个整数变量并且您不知道该值是什么:

$var = 0;
$str = "var is : " . ($var?$var:'0');

在字符串末尾附加值。

于 2017-06-05T22:14:21.460 回答