php在数字范围之间切换不起作用

时间:2015-09-02 12:43:51

标签: php switch-statement

我有这个PHP函数来改变两个数字之间的颜色:

{{1}}

但是在行动中这个功能对我不起作用。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您正在比较range()这是一个数组,而$number是整数,这是无效的,

更改您的功能,例如

function color_switch($number) {

        switch ($number) { // switching the function argument
        case $number <= 3 : // if less than three, execute case
            $color =  "progress-bar-danger";
            break;
        case $number <= 5 :
            $color =  "progress-bar-warning";
            break;
        case $number <= 6 :
            $color =  "progress-bar-default";
            break;  
        case $number <= 8 :
            $color =  "progress-bar-success";
            break;  
        case $number <= 10 :
            $color =  "progress-bar-success";
            break; 
    }
    return $color;
}

答案 1 :(得分:1)

您对开关的使用不正确,您对range()的使用也是如此。

您的开关参数应该是您评估的变量。

Range()将返回一个包含范围的数组。

所以正确的代码更好:

function color_switch($number) {

    switch ($number){
        case in_array($number, range(1 , 3)):
            $color =  "progress-bar-danger";
            break;
        case in_array($number, range(3 , 5)):
            $color =  "progress-bar-warning";
            break;
        case in_array($number, range(5 , 6)):
            $color =  "progress-bar-default";
            break;
        case in_array($number, range(6 , 8)):
            $color =  "progress-bar-success";
            break;
        case in_array($number, range(8 , 10)):
            $color =  "progress-bar-success";
            break;
        }

        return $color;
}