PHP switch 语句不使用 return 执行值

PHP switch statement doesn't executes values using return

在使用return时,PHP switch语句是否可能没有执行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;
}

似乎不​​起作用。

有什么办法让它起作用吗?

return 与 functions.Second 一起工作,如果它在函数

内,将执行

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

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

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

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


        case 2:
            return 2;


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

    }
}

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

你应该养成在你的开关中使用默认情况的习惯,即使你只是用它们来记录错误到日志或类似的东西。