我有以下代码:
switch(true)
{
case (something):
{
break;
}
case (something2):
{
break;
}
case (something3):
{
break;
}
}
同样,switch
语句必须检查其中一个案例给出了TRUE
,这不是问题,问题是,我现在有一个案例,在case ... break;
内部在检查其他数据后,我希望选择跟随他的其他switch-case
。
我试过这样做:
switch(true)
{
case (something):
{
break;
}
case (something2):
{
if(check)
{
something3 = true;
continue;
}
break;
}
case (something3):
{
break;
}
}
但是PHP不希望进入case (something3):
它打破完整的switch
语句。我如何能够传递一个案例的其余代码并跳转到下一个案例?
答案 0 :(得分:7)
这就是所谓的“堕落”。尝试使用此概念组织代码。
switch (foo) {
// fall case 1 through 2
case 1:
case 2:
// something runs for case 1 and 2
break;
case 3:
// something runs for case 3
break;
}
答案 1 :(得分:2)
使用您的代码:
switch(true)
{
case (something):
{
break;
}
case (something2):
{
if(check) {
something3 = true;
}
else {
break;
}
}
case (something3):
{
break;
}
}
这将得到案例2并运行您的支票。如果您的支票通过,那么它不会运行break语句,该语句允许交换机“通过”并执行某些操作。
答案 2 :(得分:1)
case (something2):
{
if(!check)
{
break;
}
}
答案 3 :(得分:0)
试试这个:
switch(true) {
case (something):
{
break;
{
case (something2):
{
if (!check) {
break;
}
}
case (something3):
{
break;
}
}
答案 4 :(得分:0)
我有类似的情况,我想出了一个解决方案,在你的情况下会是这样的:
switch(true)
{
case (something):
{
break;
}
case (something2):
{
if(!check)
{
break;
}
}
case (something3):
{
break;
}
}
您看到我们检查是否应该忽略当前的情况,而不是检查条件以转到下一个案例。