Hallo Björn,
if($var1 or $var2 and !$var3)
Ist das richtig so? Bei mir wird die Schleife auch aufgerufen, wenn $var3 wahr ist...
dann setz mal Klammern, um den Ausdruck eindeutiger zu machen:
if (($var1 or $var2) and !$var3)
Das halte ich generell für eine gute Idee, auch weil es dem Leser die Logik des Ausdrucks deutlicher vermittelt - selbst dann, wenn die Klammern nicht unbedingt nötig wären.
Offensichtlich bindet der UND-Operator stärker (hat eine höhere Priorität) als der ODER-Operator, so dass die klammerfreie Version intern als
if ($var1 or ($var2 and !$var3))
ausgewertet wird. In diesem Fall wäre der Gesamtausdruck schon wahr, wenn nur $var1 wahr ist, und der Rest wird dann gar nicht mehr beachtet.
So long,
Martin
--
Lebensmotto der Egoisten:
Was ist so schlimm daran, dass jeder nur an sich selbst denkt? Dann ist doch an alle gedacht!
Lebensmotto der Egoisten:
Was ist so schlimm daran, dass jeder nur an sich selbst denkt? Dann ist doch an alle gedacht!