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

Str*_*rry 2 php switch-statement

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

Seb*_*olm 15

如果您使用控制结构替代语法,则使用它.

因此你可以选择

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

要么

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

它们在功能上是相同的,仅作为语法糖提供.


Ard*_*ram 5

+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?>
Run Code Online (Sandbox Code Playgroud)

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

只是为了比较,这是“非替代”(或原始)方式:

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

观察整个代码中令人不安的花括号。第一种样式更适合 HTML 标签。