KraKi(noAuth): time()

Beitrag lesen

If ($a < $b OR $a > $c)
  echo $ERROR;

$a ist somit NICHT kleiner als $b
UND
$a ist NICHT grösser als $c
Weshalb fällt er immer in das true rein? Bin total confused...

Das Problem kann ich mit den gegebenen Werten nicht nachvollziehen. Die Teilausdrücke $a < $b und $a > $c und demzufolge auch der Gesamtausdruck ergeben false. Die erwähnte Operatorenrangfolge ist auch nicht die Ursache, denn OR hat eine niedrigere Priorität als ein Vergleich.

Tja, aber die geschweiften Klammern sollte man schon setzen...

If ($a < $b OR $a > $c)
   echo $ERROR;
Heißt doch das selbe wie
If ($a < $b OR $a > $c) {}
   echo $ERROR;
Oder menschlich: "Wenn $a kleiner $b oder $b größer $c dann tue nichts (sonst tue auch nichts). Anschließend gib den Fehler aus."

If (($a < $b) OR ($a > $c)) {
   echo $ERROR;
}

wäre besser.