2010-08-21 6 views
3

Si je veux faire une action si php si une variable n'est pas 0,1, ou 2, comment ferais-je cela? ma déclaration if ne fonctionne pas. Merci!Vérifier si la variable est différente de plusieurs valeurs

+0

La prochaine fois, vous devriez essayer de résumer la question dans le titre; "easy php question" ne donne pas plus d'informations que les tags. – meagar

+1

Ceci est juste un cas de trop de 'si 'est dans la question. Peut-être que vous devriez aller avec un 'switch'! ;) – Frankie

+1

'switch ($ x) {cas 0: cas 1: cas 2: casse; par défaut:/* prendre des mesures * /} '? Eeewwwwww. :) – cHao

Répondre

7
if (($var != 0) && ($var != 1) && ($var != 2)) { 
    //... 
} 

ou ...

if (!in_array($var, array(0, 1, 2))) { /* ... */ } 

Voir logical operators.

+1

@Leticia: Vous devriez également poster votre code la prochaine fois afin que nous puissions voir où vous vous êtes trompé. – casablanca

+0

@Let Je vous conseille de lire un peu plus sur PHP avant de commencer à écrire des scripts. Vous pouvez commencer ici: http://www.w3schools.com/php/default.asp – Artefacto

+0

+1 pour 'in_array()'. – TRiG

5

La façon la plus simple:

if ($x != 0 && $x != 1 && $x != 2) 
{ 
    // take action! 
} 

Si vous connaissez votre variable est un entier, alors vous pouvez aussi le faire comme:

if ($x < 0 || $x > 2) 
{ 
    // take action! 
} 
0

Utilisez l'opérateur && à des tests de la chaîne, et un test non -égalité avec !== qui vérifie le type et valeur:

if($n !== 0 && $n !== 1 && $n !== 2) { 
    // it's not any of those values. 
} 

L'opérateur == forcera les valeurs, donc toutes les conditions suivantes sont remplies:

  • 0 == 'foo'
  • 99 == '99balloons de
  • vrai == 1
  • false = = ''

Et ainsi de suite. Voir comparison operators pour plus d'informations sur == par rapport à ===. Consultez également le tableau "Comparaison avec différents types" pour mieux comprendre comment les types sont contraints si vous comparez des non-nombres. Vous seul pouvez déterminer si if($n < 0 || $n > 2) répondra à vos besoins. (Eh bien, nous pouvons vous aider, mais nous avons besoin de plus de détails.)

Voir logical operators pour plus d'informations sur && et ||.

+1

'if ($ n < 0 && $n > 2)' ne répondra jamais aux besoins. Cela ne peut jamais être vrai. :) – cHao

+1

Oups, corrigé. :) –

Questions connexes