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.