1

好吧,我觉得这有点奇怪,但我想知道我是否可以在开关中使用“或”运算符,如下所示:

$pet = 'cat';

switch($pet)
    case 'cat' or 'Cat':
      echo 'Is a cat';
      break;
    case 'dog' or 'Dog':
      echo 'Is a dog';
      break;
    default:
      echo 'There is no pet';
      break;
  };

我昨天尝试过,不知何故我认为它有效,也许,今天我尝试了类似的东西但它没有奏效,我想知道是否有办法做这样的事情,以及是否有办法比较里面的两个值一件事。

谢谢。

4

1 回答 1

6

我不是百分百肯定,因为我有一段时间没有使用 PHP,但你应该可以写这样的东西:

$pet = 'cat';

switch ($pet)
{
    case 'cat':
    case 'Cat':
      echo 'Is a cat';
      break;
    case 'dog':
    case 'Dog':
      echo 'Is a dog';
      break;
    default:
      echo 'There is no pet';
      break;
};

或者,您可以使用strtolower($pet)在运行 switch case 之前的方法,这样您一次只需要测试一件事。

$pet = 'cat';

$testedString = strtolower($pet);

switch ($testedString)
{
    case 'cat':
      echo 'Is a cat';
      break;
    case 'dog':
      echo 'Is a dog';
      break;
    default:
      echo 'There is no pet';
      break;
};
于 2013-03-24T09:17:43.130 回答