2009-04-20 9 views
5

Quand j'écris une instruction if, je l'ai vérifier une variable comme ceci:Vérification Si Then en PHP

if(isset($_GET['username']){ 
echo "set"; 
} else { 
echo "unset"; 
} 

Comment pourrais-je obtenir mon instruction if pour vérifier si deux variables sont définies similaire à ceci:

if(isset($_GET['username'] & $_GET['firstname'])){ 
echo "set"; 
} else { 
echo "unset"; 
} 

Donc, fondamentalement, comment vérifier deux choses dans une instruction if à la fois?

+2

Pourquoi les downvotes? Même si c'est une question assez simple, mais les gens ont besoin d'apprendre quelque chose, et c'est aussi bon que n'importe où. Bien sûr, ça pourrait ne pas faire de mal d'avoir un livre de programmation d'introduction, mais soyez gentils avec les noobs. –

Répondre

0
if (isset($_GET['username']) AND isset($_GET['firstname'])) 
{ 
    echo "set"; 
} 
else 
{ 
    echo "unset"; 
} 
11

Vérifiez le manuel PHP sur control structures et logical operators:

if(isset($_GET['username']) && isset($_GET['firstname'])) { 
    echo "set"; 
} else { 
    echo "unset"; 
} 

Utilisation du & seul fait un bitwise operation, qui est certainement pas ce que vous voulez.

and est également un synonyme de la syntaxe &&, comme les autres réponses l'ont montré.

EDIT: Comme indiqué dans les commentaires, vous pouvez vérifier si deux variables sont isset en les passant à la fois à la fonction isset. Cependant, si vous avez déjà voulu faire un autre type d'opération, vous devrez faire les opérateurs logiques ci-dessus.

+0

Jetez un coup d'œil à la réponse de Nick Presta. – nickf

+0

Je répondais à la question générale de "Donc, fondamentalement, comment puis-je vérifier deux choses dans une déclaration if à la fois?" mais je suppose que je vais éditer ma réponse pour inclure cela ... –

0
if (isset($_GET['username']) && isset($_GET['firstname'])) 
{ 
    echo "set"; 
} 
else 
{ 
    echo "unset"; 
} 

Pour référence: PHP's operators

+0

euh, est-ce exact? je ne le pense pas. si c'est le cas, il y a encore quelque chose de php-hack ... "($ _GET [] && $ _GET [])" évalue à une valeur booléenne. les variables peuvent être définies ou non, les valeurs juste ... sont. – stefs

+0

Il vous manque une apostrophe après 'nom d'utilisateur'. En outre, ce n'est pas un code valide du tout. –

+0

Correction du code comme je le pensais à l'origine. J'ai copié le code de la question en changeant leur utilisation & (l'opérateur incorrect) pour && sans vérifier le reste. – Rob

1

Essayez d'utiliser l'opérateur & & (logique) plutôt que & (binaire et)

donc si isset retourne vrai pour les deux alors si les rendements réels sinon la si retournera faux.

2
if (isset($_GET['username']) && isset($_GET['firstname'])) 
1

oui ou

écho ((isset ($ _ GET [ 'username']) & & isset ($ _ GET [ 'prenom'])) "set": "unset");

+0

J'ai tendance à aimer quelque chose comme ça. –

7
if (isset($_GET['username'], $_GET['firstname'])) { 
    echo 'Set!'; 
} 

isset prend plusieurs arguments et si plusieurs paramètres sont fournis isset alors() retournera TRUE seulement si tous les paramètres sont définis. L'évaluation va de gauche à droite et s'arrête dès qu'une variable non définie est rencontrée.

+0

Ouais j'étais sur le point de le dire moi-même. Je ne peux pas croire toutes les autres réponses qui n'ont pas compris ça ... – nickf

Questions connexes