我可以有多个案例做同样的事情吗?

时间:2008-10-23 18:22:03

标签: php switch-statement

第一个肯定是可行的,但下面哪一个是有效的方式?

switch($type) {
    case 1:
        print 'success';
    break;

    case 2:
        print 'success';
    break;

    case 3:
        print 'success';
    break;

    case 4:
        print 'success for type 4';
    break;
}

由于1,2和3打印相同,我可以这样做吗?

switch($type) {
    case 1, 2, 3:
        print 'success';
    break;

    case 4:
        print 'success for type 4';
    break;
}

switch($type) {
    case 1:
    case 2:
    case 3:
        print 'success';
    break;

    case 4:
        print 'success for type 4';
    break;
}

3 个答案:

答案 0 :(得分:19)

 switch($type) 
 {
     case 1:
     case 2:
     case 3:
         print 'success';
     break;
     case 4:
         print 'success for type 4';
     break;
 }

是要走的路!

答案 1 :(得分:3)

PHP手册列出了switch的第3个示例:

<?php
switch ($i) {
case 0:
case 1:
case 2:
    echo "i is less than 3 but not negative";
    break;
case 3:
    echo "i is 3";
}
?>

答案 2 :(得分:2)

我同意其他人的使用:

switch ($i) {
   case 0: //drop
   case 1: //drop
   case 2: //drop
      echo "i is 0, 1, or 2";
   break;
   // or you can line them up like this.
   case 3: case 4: case 5:
      echo "i is 3, 4 or 5";
   break;
}

我要添加的唯一内容是对多行删除案例语句的注释,这样一来,当你(或其他人)在最初编写代码后查看代码时,你知道这不是一个错误。