我继承了一段类似这样的代码:
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 上运行?
在以前的版本中:
该规范声称以下是一个语法错误,而 PHP 将使用最后一个默认块执行它。
见https://wiki.php.net/rfc/switch.default.multiple
从 PHP 7 开始,它会抛出一个编译错误。
定义多个默认值没有意义。