2010-07-21 2 views
1

J'ai écrit la pièce de code suivante2 variables de sessions, vérification d'isset!

if((!isset($_SESSION['home'])) || (!isset($_SESSION['away']))) 

Je suppose que cela doit vérifier si chacune de ces variables existent. Je montre seulement ce qui est dans l'instruction if si l'une de ces variables n'existe pas.

Mais pour une raison quelconque, il montre toujours la substance à l'intérieur des accolades, même si la variable 100% existe.

Le code est-il incorrect? Merci

Répondre

7

Ensuite, vous avez besoin d'un 'ET' (& &) déclaration, pas un 'OR' (||), si je comprends bien ...

if((!isset($_SESSION['home'])) && (!isset($_SESSION['away']))) 
+0

L'un ou l'autre, un seul sera présent. Je passe par un processus où la maison est présente, puis désactivée mais loin est alors présente, puis quand loin est non défini, je veux qu'il réapparaisse. – sark9012

+0

"Mais pour une raison quelconque, il montre toujours les choses à l'intérieur des accolades, même si la variable 100% existe." Si c'est ce que vous désirez alors vous devez vérifier avec '&&' vous voulez vous assurer que la maison et l'écart ne sont pas réglés. –

+0

En fait, si ce qui précède est vraiment ce que l'OP veut, vous pouvez même raccourcir ceci: 'if (! Isset ($ _ SESSION ['home'], $ _SESSION ['away']))'. C'est une bonne syntaxe que le sucre fournit,) – NikiC

1

Je pense que ce que vous vouliez dire en réalité est :

if(!((!isset($_SESSION['home'])) || (!isset($_SESSION['away'])))){ 
    //code if at least one of those variables exists 
}else { 
    //the other thing 
}