我可以在 switch 中多次使用相同的 case 值吗

Gok*_*N K 3 php switch-statement

我可以写这样的switch语句吗?

   switch ($mood) {

    case hungry : 
    case sad : 
    echo 'Eat a chocolate';


    case sad : 
    echo 'Call Up your friend';

    }
Run Code Online (Sandbox Code Playgroud)

这是一个好的做法吗?

编辑:根据评论删除了break语句。

Ama*_*ali 5

从技术上讲,可以定义多个具有相同值的情况,但只有第一个情况会被执行。所以它几乎没什么用。

switch()文档中:

PHP 继续执行语句,直到 switch 块结束,或者第一次看到 break 语句。

由于第一个 casebreak中有 a ,因此不会执行其他 case 并且代码将退出该switch()块。

考虑下面的代码:

$var = 'sad';

switch ($var) {
    case 'sad':
        echo 'First';
        break;
    case 'sad':
        echo 'Second';
        break;
}
Run Code Online (Sandbox Code Playgroud)

这将输出First.

如果要在条件为 的情况下执行多个语句TRUE,请将它们添加到相同的情况下,如下所示:

switch ($var) {
    case 'sad':
        echo 'First';
        echo 'Second';
        break;
}
Run Code Online (Sandbox Code Playgroud)