Answers:
如果必须使用||
with,switch
则可以尝试:
$v = 1;
switch (true) {
case ($v == 1 || $v == 2):
echo 'the value is either 1 or 2';
break;
}
如果不是这样,您首选的解决方案就是
switch($v) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
问题是,大案件时......想象这两个方法的效率不高1
,以100
这将很好地工作
$r1 = range(1, 100);
$r2 = range(100, 200);
$v = 76;
switch (true) {
case in_array($v, $r1) :
echo 'the value is in range 1 to 100';
break;
case in_array($v, $r2) :
echo 'the value is in range 100 to 200';
break;
}
我不会重新发布其他答案,因为它们都是正确的,但我只是补充说,您不能对更多“复杂”的语句使用switch,例如:测试值是否“大于3”,“在4到6“之间,等等。如果您需要执行类似操作,请坚持使用using if
语句,或者如果特别需要此语句,则switch
可以将其重新使用:
switch (true) {
case ($value > 3) :
// value is greater than 3
break;
case ($value >= 4 && $value <= 6) :
// value is between 4 and 6
break;
}
但正如我所说,我个人会在if
那儿使用声明。
switch()
,而当我使用C-ish语言来工作时,我真的很想念Have 风格Select Case
,这实际上是表示“有很多东西if,else if,else-if ... here块”。
you can't use switch for more "complicated" statements
是can't
还是它shouldn't
?因为在您的示例中,您can
switch (true)
事情不是交换机的普通用例。
尝试使用本文中的以下示例:http : //phpswitch.com/
可能的开关盒:
(一世)。一个简单的switch语句
switch语句奇妙而神奇。这是一种语言,允许您在一个值的不同选项之间进行选择,并根据所设置的值来运行不同的代码。
每个可能的选项都由switch语句中的一个案例给出。
范例:
switch($bar)
{
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
}
(ii)。分隔代码块
切换的主要警告是,每种情况都会继续进行到下一种情况,除非您暂停使用。如果将上述简单情况扩展为涵盖情况5:
范例:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iii)。对多个情况使用失败检查
因为switch会一直运行代码直到找到中断,所以很容易接受“失败”的概念并在多个情况下运行相同的代码:
范例:
情况2:
case 3:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iv)。高级切换:条件情况
PHP的switch不仅允许您打开特定变量的值:您可以将任何表达式用作一种情况,只要它提供了要使用的大小写值即可。例如,这是一个使用switch编写的简单验证器:
范例:
switch(true)
{
case (strlen($foo) > 30):
$error = "The value provided is too long.";
$valid = false;
break;
case (!preg_match('/^[A-Z0-9]+$/i', $foo)):
$error = "The value must be alphanumeric.";
$valid = false;
break;
default:
$valid = true;
break;
}
我认为这可以帮助您解决问题。
我建议您浏览 http://php.net/manual/en/control-structures.switch.php(手动)
switch ($your_variable)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
说明
就像您执行单个语句的值一样,您可以不加中断地放置它,直到或除非找到中断,否则它将继续执行代码,如果找到中断,它将从切换情况中退出。
http://php.net/manual/zh/control-structures.switch.php 示例
$today = date("D");
switch($today){
case "Mon":
case "Tue":
echo "Today is Tuesday or Monday. Buy some food.";
break;
case "Wed":
echo "Today is Wednesday. Visit a doctor.";
break;
case "Thu":
echo "Today is Thursday. Repair your car.";
break;
default:
echo "No information available for that day.";
break;
}