tol*_*org 3 php switch-statement
与使用多个 if else 相比,我真的很喜欢 switch 语句的结构。然而有时我想使用 switch 语句并在多种情况下具有相同的值。这可以以某种方式完成吗?
switch($fruit) {
case 'apple':
case 'orange':
// do something for both apples and oranges
break;
case: 'apple':
// do something for only apples
break;
case: 'orange':
// do something for only oranges
break;
}
Run Code Online (Sandbox Code Playgroud)
我希望我的例子表明我打算做什么......
不,它不能。第一个case匹配的内容以及它后面直到第一个break语句或语句末尾的所有内容都switch将被执行。如果您这样做break,则您将退出该switch语句并且无法重新输入该语句。你能做的最好的事情是:
switch ($fruit) {
case 'apple':
case 'orange':
...
switch ($fruit) {
case 'apple':
...
case 'orange':
...
}
}
Run Code Online (Sandbox Code Playgroud)
但实际上,不要。如果您需要在个人之前对这两个人执行一些特殊操作,请在 之前switch执行。或者从一开始就重新考虑整个程序逻辑和结构。if (in_array($fruit, ['apple', 'orange'])) ...switch