2015-02-26 3 views
1

Heres, что я хочу:Могу ли я использовать оператор if внутри коммутатора в php?

У меня есть переменная с именем $ user, где информация отправляется из формы. Если данные формы пусты, я хочу сделать одну вещь, если данные формы - это просто запятая или символ, я хочу сделать что-то еще, и если данные формы верны, я хочу сделать третью вещь. Вот как я его настроил, будет ли это работать? Если нет, что я могу сделать, чтобы заставить его работать?

switch($user){ 
    case 1: 
if(empty($user)){ 
echo "<h2>"."<strong>"."You entered NOTHING, PLEASE Re-Enter"."</strong>"."</h2>"; 
} 
case 2: 
if($user == ",") { 
echo "<h2>"."<strong>"."You did not enter any valid names/abbreviations to search, PLEASE Re-Enter"."</strong>"."</h2>"; 
} 
default: 


    print "==========================================="."<br />"; 
    tester($company, $user); 


print "==========================================="."<br />"; 
print "========The following were NOT found====="."<br />"; 
notFound($company, $user); 

print "==========================================="."<br />"; 

} 

В настоящее время он автоматически переходит в режим по умолчанию. Он работает, но я хочу интегрировать два квалификатора, как бы я это сделал?

ответ

0

Вам нужно положить break в конце каждого случая в инструкции переключателя или пропустить его до следующего случая. Я также думаю, что вы можете смутить насчет того, как работает switch. Если вы включаете $ user, case соответствует значению $ user - вам даже не нужны if-statements.

switch($user){ 
    case "": 
     echo "<h2>"."<strong>"."You entered NOTHING, PLEASE Re-Enter"."</strong>"."</h2>"; 
     break; 
    case ",": 
     echo "<h2>"."<strong>"."You did not enter any valid names/abbreviations to search, PLEASE Re-Enter"."</strong>"."</h2>"; 
     break; 
    default: 
     print "==========================================="."<br />"; 
     tester($company, $user); 


     print "==========================================="."<br />"; 
     print "========The following were NOT found====="."<br />"; 
     notFound($company, $user); 

     print "==========================================="."<br />"; 
} 
+0

GREAT! Это сработало так, как я этого хотел, большое спасибо –

+0

Еще одна вещь, если вводится более одной запятой, тогда она переходит в значение по умолчанию, как я могу сделать так, чтобы любое число последовательных запятых имело тот же результат? –

+0

'switch' на самом деле не лучший способ сделать это - вам придется искать регулярное выражение. Чтобы совместить запятые, вы должны делать 'preg_match (" /, +/", $ user)' – kellanburket

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