2009-02-07 19 views
0

J'ai plusieurs instructions de commutation dans l'une des pages afin de transmettre différentes variables à l'URL, ainsi que des cas différents. J'ai besoin de ces différentes instructions de commutation parce que j'ai besoin des différentes variables. Toutefois, lorsque je mets un "default" dans l'une des instructions switch, cette valeur par défaut s'applique à toutes les autres instructions switch et donc lorsque j'utilise la variable d'une autre instruction switch dans l'URL, le cas par défaut de cet autre commutateur La déclaration apparaîtra à l'écran, avec le cas de cette instruction switch.Déclarations de commutation séparées multiples

Toutes mes instructions switch ont un ou plusieurs cas et je n'arrive vraiment pas à comprendre comment contourner cela. S'il vous plaît, quelqu'un peut-il m'aider? Merci d'avance, Calum.

+0

Veuillez fournir un exemple de code – truppo

+0

Concur; il est presque impossible de fournir une bonne réponse sans code d'échantillon ici. – Rob

+0

Ahh oui, désolé pour ça! J'ai complètement oublié à ce sujet:/ Il est fondamentalement identique au code ci-dessous, mais sans les instructions "if". –

Répondre

3

Cela pourrait être loin, mais je pense que vous avez besoin de quelque chose comme ceci:

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

Est-ce que sens?

0

assurez-vous que vous avez un "break"; déclaration à la fin de chacun de vos cas, et que le cas par défaut est le dernier. comme ceci:

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

Vous pouvez également placer le défaut en tant que premier élément, il n'a aucune incidence sur le résultat des résultats de l'instruction. – Syntax