PHP结束开关; - 这通常是练习吗?

时间:2010-04-17 18:58:50

标签: php switch-statement

我正在阅读一些switch语句,并注意到一个使用endswitch;。为什么或为什么不应该使用它?它甚至是必要的吗?

5 个答案:

答案 0 :(得分:15)

如果您使用alternative syntax for control structures

,则会使用它

因此你可以选择

switch ($var) {
    case 1:
        echo "Hello!\n";
        break;
    case 2:
        echo "Goodbye!\n";
        break;
    default:
        echo "I only understand 1 and 2.\n";
}

switch ($var):
    case 1:
        echo "Hello!\n";
        break;
    case 2:
        echo "Goodbye!\n";
        break;
    default:
        echo "I only understand 1 and 2.\n";
endswitch;

它们功能相同,仅以syntactic sugar提供。

答案 1 :(得分:2)

+1琥珀色。替代语法无疑更具可读性,尤其是在HTML中插入控制结构时。是的,公认的编码标准因组织而异。在我们的例子中,我们在模板中使用if():endif,在代码的逻辑和后端部分使用if(){}。观察代码的整洁,包括缩进:

<?php if($number %2 != 0):?>
    <p>I guess the number is odd</p>
<?php else:?>
    <p>I guess the number is even</p>
<?php endif?>

在这种情况下,你甚至不需要那个讨厌的分号。

比较一下,这里是“unalternative”(或原创)方式:

<?php if($number %2 != 0) {?>
    <p>I guess the number is odd</p>
<?php } else {?>
    <p>I guess the number is even</p>
<?php }?>

在整个代码中观察美学上令人不安的花括号。第一种风格更适合HTML标签。

答案 2 :(得分:1)

我从未使用过switch变体,但对于if语句或for语句,它可以在模板中使用。

但这主要是品味问题。

答案 3 :(得分:1)

替代语法在模板文件中非常好。

答案 4 :(得分:0)

c风格语言中switch语句的常用systax是这样的:

switch($foo) {
    case 1:  foobar();
             break;
    case 2:  something();
             break;
    case 3:  whatever();
             break;
    default: anything();
}

从未在实际生产代码中看到“endswitch”。

我建议坚持使用可接受的编码标准,以保持代码的可读性和可维护性。