PHP 7 - 多个默认值

Sno*_*ash 3 php php-7

我继承了一段类似这样的代码:

        case 'apple':
        default:
            echo "Apple";
                break;

        case 'banana':
        default:
            echo "Banana";
                break;

        case 'cherry':
            echo "Cherry";
                break;
Run Code Online (Sandbox Code Playgroud)

相当奇怪的语法!

我实际上没有意识到您可以有多个默认值。或者上面的代码甚至可以工作。无论如何,掩盖这一点,在检查语法的同时,似乎这种结构会与 PHP7 中断(http://php.net/manual/en/control-structures.switch.php)

7.0.0   Multiple default cases will raise a E_COMPILE_ERROR error.
Run Code Online (Sandbox Code Playgroud)

是这样吗?这是否意味着这段代码根本无法在 PHP7 上运行?

Dan*_* W. 5

在以前的版本中:

该规范声称以下是一个语法错误,而 PHP 将使用最后一个默认块执行它。

见https://wiki.php.net/rfc/switch.default.multiple

从 PHP 7 开始,它会抛出一个编译错误。

定义多个默认值没有意义。