我可以在交换机中多次使用相同的大小写值

时间:2013-11-13 13:47:45

标签: php switch-statement

我可以写一个像这样的开关语句吗?

   switch ($mood) {

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


    case sad : 
    echo 'Call Up your friend';

    }

这是一个好习惯吗?

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

1 个答案:

答案 0 :(得分:4)

技术上可以定义具有相同值的多个案例,但只会执行第一个案例。所以它几乎没用。

来自switch()文档:

  

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

由于第一个案例中有break,因此不会执行其他案例,代码将退出switch()块。

考虑以下代码:

$var = 'sad';

switch ($var) {
    case 'sad':
        echo 'First';
        break;
    case 'sad':
        echo 'Second';
        break;
}

这将输出First

如果你想在条件为TRUE的情况下执行多个语句,那么在相同的情况下添加它们,如下所示:

switch ($var) {
    case 'sad':
        echo 'First';
        echo 'Second';
        break;
}