PHP switch语句不使用return执行值

时间:2015-03-02 13:47:35

标签: php switch-statement return

使用return时,PHP switch语句是否可能不执行切换所需的结果?

这两个陈述有什么区别?

$foo = '2';    
switch ($foo) {       
    case 1:
        echo 1;
        break;

    case 2:
        echo 2;
        break;
}

执行2

$foo = '2';    
switch ($foo) {       
    case 1:
        return 1;
        break;

    case 2:
        return 2;
        break;
}

似乎不起作用。

有没有办法让它发挥作用?

3 个答案:

答案 0 :(得分:7)

echo输出您传递的值(1,2)
return将值传递给调用模块。

第二段代码确实有效,但您看不到任何视觉输出。

答案 1 :(得分:4)

以下是如何在函数中使用case语句 -

function myFunction($foo) {
    switch ($foo) {       
        case 1:
            return 1;
            break;

        case 2:
            return 2;
            break;

        default:
            return 'no matching values were sent to the function';
            break;
    }
}

echo myFunction(2); // will echo '2'

在这样的函数中,你不需要有break语句,return负责破解。这只是一种很好的做法。您应该养成在交换机中使用默认情况的习惯,即使您只是使用它们来记录日志或类似内容的错误。

答案 2 :(得分:0)

返回与函数一起工作。如果函数内部是函数

,则执行