我可以把休息放在同一条线上

时间:2010-03-23 10:29:18

标签: php switch-statement

我有一个包含300多个case语句的switch语句。

  case 'hello': 
    { $say = 'some text'; }
        break;

case 'hi':
    { $say = 'some text'; }
        break;

为什么休息时间总是在另一条线上?这需要吗?我这样做在语法上是不正确的:

  case 'hello': { $say = 'some text'; } break;
  case 'hi': { $say = 'some text'; } break;

5 个答案:

答案 0 :(得分:3)

在同一条线上休息没有错。你也不需要括号。

然而,您是否考虑过使用其他方法而不是拥有300个案例开关的声明。值的键映射(使用数组)将更快,更易于维护。

$myArray = array(
    'hello' => 'some text',
    'hi'    => 'some text',
);

if ( isset($myArray[$switchKey]) ){
    $say = $myArray[$switchKey];
}else{
    //default case
}

答案 1 :(得分:1)

不,PHP对空格不敏感。分号和括号分隔语句。

中断通常在一个单独的行上,因为它不是在同一行上放置多个语句,并使switch语句的控制流清晰的好方式。

答案 2 :(得分:1)

你的两个例子都是可能的。顺便说一下,在这种情况下我不认为括号是必要的,你也可以写:

switch ($myVar) {
    case 'hello': $say = 'some text'; break;
    case 'hi': $say = 'some text'; break;
    default: $say = 'something'; break;
}

答案 3 :(得分:0)

是的,你可以将break语句放在case块中,它只是寻找break语句
关闭开关盒。

答案 4 :(得分:0)

另外,我建议使用类似php_codesniffer的东西来建议您重新编码样式。