2009-02-07 6 views
0

У меня есть несколько операторов switch на одной из страниц, чтобы передавать разные переменные URL, а также разные случаи. Мне нужны эти разные операторы switch, потому что мне нужны разные переменные.Операции с несколькими отдельными коммутаторами

Однако, когда я помещаю «по умолчанию» в один из операторов switch, это значение по умолчанию применяется ко всем другим операторам switch, поэтому, когда я использую переменную другого оператора switch в URL-адресе, случай по умолчанию этого другого коммутатора оператор появится на экране вместе со случаем этого оператора switch.

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

Заранее благодарен, Calum.

+0

Просьба привести пример кода – truppo

+0

Concur; здесь практически невозможно дать хороший ответ без примера кода. – Rob

+0

Ах, да, извините! Я полностью забыл об этом:/ В основном это то же самое, что и код ниже, но без инструкций «if». – 2009-02-08 22:12:17

ответ

3

Это может быть далеко, но я думаю, что нужно что-то вроде этого:

if (isset($_POST['myvar'])) { 
    switch ($_POST['myvar'] { 
     case 1: 
     .... 
     break; 
     default: 
     .... 
     break; 
    } 
} else if (isset($_POST['myvar2'])) { 
    switch ($_POST['myvar2'] { 
     case 1: 
     .... 
     break; 
     default: 
     .... 
     break; 
    } 
} 

Имеет ли это смысл?

0

убедитесь, что у вас есть «перерыв»; в конце каждого из ваших случаев, и что случай по умолчанию является последним. например:

switch ($var) { 
    case 1: // do stuff 1; 
      break; 
    case 3: // do stuff 2; 
      break; 
    // ... 
    default: // do default stuff 
} 
+0

Вы также можете поместить значение по умолчанию в качестве первого элемента, оно не влияет на результат результатов инструкции. – Syntax