2010-10-28 15 views
0

Ceci est probablement une réponse simple, mais je curieux de savoir si vous avez du code php comme par exemple ceci:Groupement ands et eurs dans une instruction if PHP

if($_SESSION['id'] == '000001' || $_SESSION['id'] == '000002') { 

Peut-être ces valeurs regroupées en quelque sorte? Mes pensées seraient quelque chose comme:

if($_SESSION['id'] == ('000001' || '000002')) { 

Pas une affaire énorme, juste se demandant si c'est possible. Sinon, il semble que ce devrait être le cas.

+0

Prolly vaut avoir les valeurs dans un tableau et itérer dessus, en faisant la vérification de chaque valeur le tableau. Peut-être inefficace cependant. – brumScouse

+0

Bien que votre tentative de regroupement puisse sembler intuitive, PHP (comme la plupart des autres langages) fonctionne de cette façon. L'expression interne '('000001' || '000002')' serait d'abord évaluée à 'true' car une ou plusieurs des valeurs ne sont pas fausses (les deux, dans ce cas). Alors l'expression principale devient 'if ($ _SESSION ['id'] == true)'. – Matthew

Répondre

3

Il est un peu possible en utilisant in_array():

if (in_array($_SESSION['id'], array("000001", "000002"))) 

ou en utilisant alternativement switch:

switch ($_SESSION["id"]) 
{ 
    case "000001": 
    case "000002": 
    // do something 
    break; 

    default: 
    break; 
} 
+0

+1 parce que j'aime in_array :) – middus