2013-03-24 3 views
1

Ну, я думаю, что это своего рода странно, но я хотел бы знать, могу ли я использовать оператор «или» внутри коммутатора что-то вроде этого:«или» оператора внутри коммутатора PHP

$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; 
    }; 

Я пробовал вчера и как-то я думаю, что это сработало, может быть, сегодня я попробовал нечто подобное, но это не сработало, я хотел бы знать, есть ли способ сделать что-то подобное, и если есть способ сравнить два значения внутри случая.

Thank's.

ответ

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) прежде чем запускать корпус коммутатора, чтобы вам приходилось проверять только одно.

$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; 
}; 
+0

В этом конкретном примере вы также можете использовать strtolower(). – bozdoz

+0

Он отлично работал как @duTr. Благодаря. –

+0

@bozdoz Спасибо за имя функции. Я отредактировал свой ответ – duTr

Смежные вопросы