PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if: && und ||



Coras
28.10.2005, 11:00
Hi, ich habe eine Frage zu den Operatoren && und or in IF-Abfragen in PHP.
Worauf bezieht sich das ||? Immer auf die letzte Bedingung? Beispiel:

if($variable1 == 'wert1' && $variable2 == 'wert2' || $variable3 == 'wert3') { ... }
Verhält sich das dann wie

if($variable1 == 'wert1')
{
if($variable2 == 'wert2')
{
blah();
}
elseif($variable3 == 'wert3')
{
elseblah();
}
}
oder wie

if($variable1 == 'wert1')
{
if($variable2 == 'wert2')
{
blah();
}
}
elseif($variable3 == 'wert3')
{
elseblah();
}

? Ist'n bisschen kompliziert, da durchzublicken, wenn man immer nur sehr kleine Motivationsschübe hat. ._.

Dingsi
28.10.2005, 11:13
Probiers halt aus? 0o.

Ich würde auf den zweiten Fall tippen.

Aber ich würde in solchen Fällen eh immer Klammern benutzen damits eindeutig wird. Also..
if( ($omg && $wtf) || $bbq )

Latency
28.10.2005, 12:16
Ein Blick ins PHP-Manual (http://www.php.net/manual/de/language.operators.php#language.operators.precedence) hilft von Zeit zu Zeit.

Dort steht eindeutig, dass das && Stärker bindet als das ||.

Sprich dein Code würde würde geklammert wie folgt aussehen:

(((bal == bla) && (jo == joa)) || (hoi == hio))

BuddyJ
28.10.2005, 17:23
oO so weit ich weiß, ist && für und (also if(bla == 1 && blaa == 2)...) und || für oder (also if(bla==1 || if blaa = 2))

nya jedenfalls isses bei actionscript so (welches imo in solchen sachen kaum unterschied zu PHP hat...)

@der da unter mir: oO Ich dachte es geht um das was ich geschrieben hab xD Nya ach egal

Lukas
28.10.2005, 17:29
Es ging nicht um die Funktion, sondern um die Präzedenz der Operatoren, was du durch einfaches lesen des Threads auch herausgefunden hättest.