Php 反向开关案例陈述(直到为真)
我试图达到一个结果,我只能想在一个反向开关的情况下,直到真正的声明。见以下常规案例说明:Php 反向开关案例陈述(直到为真),php,algorithm,switch-statement,Php,Algorithm,Switch Statement,我试图达到一个结果,我只能想在一个反向开关的情况下,直到真正的声明。见以下常规案例说明: $i="bar"; switch ($i) { case "apple": echo "i is apple."; break; case "bar": echo "i is bar."; break; case "cake": echo "i is cake."; break;
$i="bar";
switch ($i) {
case "apple":
echo "i is apple.";
break;
case "bar":
echo "i is bar.";
break;
case "cake":
echo "i is cake.";
break;
}
我想要的结果如下:
例如:如果$i='apple'
我想让它打印我就是苹果。
例如:如果$i='bar'
我想让它打印我是苹果。我是bar。
例如:如果$i='cake'
我想让它打印我是苹果,我是酒吧,我是蛋糕
答案可能不一定使用上面的结构,一旦它可以达到结果尝试以下方法:
<?php
$i = 'bar';
$cases = array(
'apple' => 'i is apple.',
'bar' => 'i is bar.',
'cake' => 'i is cake.',
);
$resp = '';
foreach($cases as $k => $v)
{
$resp .= $v;
if($k == $i) break;
}
echo $resp;
?>
您可以使用常规的
IF
语句,但将检查放在回音之后
<?php
function checkMe($i) {
echo "i is apple.";
if ($i=="apple")
return;
echo "i is bar.";
if ($i=="bar")
return;
echo "i is cake.";
if ($i=="cake")
return;
}
checkMe("bar");
?>
开关会变成这样:
$i="bar";
switch ($i)
{
case "apple":
case "bar":
case "cake":
echo "i is apple.";
if ($i == "apple") break;
echo "i is bar.";
if ($i == "bar") break;
echo "i is cake.";
if ($i == "cake") break;
default:
}
这个带有故障的switch语句与我能想到的OP最为相似:
$i = "cake";
$output = "";
switch ($i) {
case "cake":
$output = "i is cake." . $output;
case "bar":
$output = "i is bar." . $output;
case "apple":
$output = "i is apple." . $output;
default:
echo $output;
break;
}
@最后面的是
我是酒吧。我是蛋糕,$i=“bar”回答得很好。阅读起来不那么直观,但添加更多案例肯定是最灵活的+1.