php - 默认作为 switch 语句中的第一个选项?

标签 php syntax switch-statement

我已经对此进行了测试并且它工作正常,但它看起来...很奇怪...对我来说。我是否应该担心这是一种非标准形式,将在未来的 PHP 版本中删除,或者它可能会停止工作?我总是将默认情况作为最终情况,而不是第一种情况......

switch($kind)
{
    default:
        // The kind wasn't valid, set it to the default
        $kind = 'kind1';
        // and fall through:

    case 'kind1':
        // Do some stuff for kind 1 here
        break;

    case 'kind2':
        // do some stuff for kind2 here
        break;

    // [...]

    case 'kindn':
        // do some stuff for kindn here
        break;

}

// some more stuff that uses $kind here...

(以防万一,我想做的是确保 $kind 有效,因此默认为:case。但是开关也执行一些操作,然后 $kind 也在开关之后使用。那是为什么默认:落入第一种情况,并且还设置 $kind)

建议?这是正常/有效的语法吗?

最佳答案

这是一个不寻常的成语,它会在您阅读它时引起一点停顿,即“嗯?”的片刻。它有效,但大多数人可能希望在最后找到默认情况:

switch($kind)
{
    case 'kind2':
        // do some stuff for kind2 here
        break;

    // [...]

    case 'kindn':
        // do some stuff for kindn here
        break;

    case 'kind1':
    default: 
        // Assume kind1
        $kind = 'kind1';

        break;

}

关于php - 默认作为 switch 语句中的第一个选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241695/

相关文章:

php - 如何在我的 php 文件中显示外语

php - 用于匹配函数 sintaxe em PHP 的正则表达式

Swift:带有 switch 语句的嵌套枚举

php - 使用 jquery 在父标签之外附加 html

php - 如何使用Codeigniter访问第三方文件夹中的smarty库?

php - 在 PHP echo 语句中使用 JS 'onclick' 函数并嵌入 XML 获取的正确语法

syntax - 逗号分隔打印()

C++ — 使用 getch() 的箭头键按下检测莫名其妙地打印了一些单词

c - 当 switch 语句中有两个连续的 break 时会发生什么?

php - 从 android 将数组发送到我的数据库