PHP switch case 在 case 中存在多个值
我有一个变量保存值“每周”、“每月”、“季度”和“年度”,还有另一个变量保存从 1 到 10 的值。
switch ($var2) {
case 1:
$var3 = 'Weekly';
break;
case 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4:
$var3 = 'Quarterly';
break;
case 5:
$var3 = 'Quarterly';
break;
// etc.
}
这并不美观,因为我的代码有一个很多重复项。我想要什么:
switch ($var2) {
case 1, 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4, 5:
$var3 = 'Quarterly';
break;
}
我怎样才能用 PHP 做到这一点?
I have a variable that holds the values 'Weekly', 'Monthly', 'Quarterly', and 'Annual', and I have another variable that holds the values from 1 to 10.
switch ($var2) {
case 1:
$var3 = 'Weekly';
break;
case 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4:
$var3 = 'Quarterly';
break;
case 5:
$var3 = 'Quarterly';
break;
// etc.
}
It isn't beautiful, because my code has a lot of duplicates. What I want:
switch ($var2) {
case 1, 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4, 5:
$var3 = 'Quarterly';
break;
}
How can I do it in PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
从性能角度来看,最简单也可能是最好的方法是:
此外,对于更复杂的情况也是可能的:
在这种情况下,必须设置 $var2 并且不能为 null 或 0
The simplest and probably the best way performance-wise would be:
Also, possible for more complex situations:
In this scenario, $var2 must be set and can not be null or 0
第一个匹配案例之后的所有内容都将被执行,直到找到break语句。因此,它只会进入下一个案例,这允许您对案例进行“分组”。
Everything after the first matching case will be executed until a break statement is found. So it just falls through to the next case, which allows you to "group" cases.
如果您正在阅读本文,并且年份是 2021 年及以后,那么您也在使用 PHP > 8.0 中,您现在可以使用新的 match 表达式来实现此目的。
请注意,匹配会
进行身份检查,这与
===
相同,而开关相等性检查则为==
。此处了解有关匹配表达式的更多信息
If You're reading this and the year is 2021 and beyond, You're also using PHP > 8.0, you can now use the new match expression for this.
this could be
Please note that match does identity checks, this is the same as
===
compared to switch equality check which is==
.read more about match expression here
Switch 对于 A/B 测试也非常方便。下面是随机测试某事物的四个不同版本的代码:
Switch is also very handy for A/B testing. Here is the code for randomly testing four different versions of something:
您可以使用数组来存储匹配组;喜欢:
You could use array to store you match groups; like: