2009-04-20 10 views
5

Wenn ich eine if-Anweisung schreiben, ich habe es eine Variable überprüfen, wie so:Überprüfung Wenn Dann Aussagen in PHP

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

Wie konnte ich meine, wenn Aussage zu überprüfen, ob zwei Variablen similiar auf diese festgelegt sind:

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

Also im Grunde, wie überprüfe ich zwei Dinge in einer if-Anweisung auf einmal?

+2

Warum die Downvotes? Obwohl dies eine ziemlich grundlegende Frage ist, aber die Leute müssen dieses Zeug irgendwo lernen, und das ist so ein guter Ort wie jeder andere. Sicher, es könnte nicht schaden, ein einführendes Programmierbuch zu bekommen, aber sei nett zu den Noobs. –

Antwort

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

Schauen Sie sich die PHP Manual auf control structures und logical operators:

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

Verwendung der einzelnen & eine bitwise operation tut, das ist ganz sicher nicht das, was Sie wollen.

and ist auch ein Synonym für die && Syntax, wie die anderen Antworten gezeigt haben.

EDIT: Wie in den Kommentaren darauf hingewiesen, können Sie überprüfen, ob zwei Variablen, indem sie beide auf die isset Funktion isset werden. Wenn Sie jedoch schon einmal eine andere Operation ausführen wollten, müssten Sie die obigen logischen Operatoren ausführen.

+0

Werfen Sie einen Blick auf die Antwort von Nick Presta. – nickf

+0

Ich beantwortete die allgemeine Frage "Also, wie überprüfe ich zwei Dinge in einer if-Anweisung auf einmal?" aber ich denke, ich werde meine Antwort so bearbeiten, dass sie ... –

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

Zum Vergleich: PHP's operators

+0

uh, ist das korrekt? Ich denke nicht. Wenn ja, ist wieder ein hässlicher PHP-Hack ... "($ _GET [] && $ _GET [])" ergibt einen booleschen Wert. Variablen können gesetzt werden oder nicht, Werte nur ... sind. – stefs

+0

Ihnen fehlt ein Apostroph nach 'Benutzername'. Darüber hinaus ist das überhaupt kein gültiger Code. –

+0

Der Code wurde so korrigiert, wie ich es ursprünglich meinte. Ich kopierte den Fragecode und änderte ihre Verwendung & (der falsche Operator) für &&, ohne den Rest davon zu überprüfen. – Rob

1

Versuchen Sie, die & & Operator (logisch und) statt & (binär und)

also, wenn isset für beide wahr kehrt dann die if true zurück sonst die wenn wird falsch zurückgegeben.

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

ja oder

echo ((isset ($ _ GET [ 'username']) & & isset ($ _ GET [ 'Vorname'])) "set": "nicht gesetzt");

+0

Ich neige dazu, so etwas am besten zu mögen. –

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

isset nimmt mehrere Argumente, und wenn mehrere Parameter geliefert werden dann isset() wird TRUE zurückgeben nur dann, wenn alle Parameter eingestellt sind. Die Auswertung läuft von links nach rechts und stoppt, sobald eine nicht gesetzte Variable gefunden wird.

+0

Ja, ich wollte das selbst sagen. Ich kann nicht all die anderen Antworten glauben, die das nicht aufgegriffen haben ... – nickf