phpbar.de logo

Mailinglisten-Archive

[php] Was stimmt mit meiner if(or) Anweisung nicht?

[php] Was stimmt mit meiner if(or) Anweisung nicht?

Sebastian Mendel lists at sebastianmendel.de
Mit Jul 9 09:07:05 CEST 2008


Ralf Geschke schrieb:
> Hallo!
>
> Entschuldigung, aber ich konnte nicht glauben, dass PHP so Banane ist,
> aber das ist es auch nicht. Vergleiche mal mit
> http://de.php.net/manual/en/language.operators.php#language.operators.precedence
>
>> das liegt daran, da das || eine höhere Priorität hat, als das or und
>> auch eine höhere Priorität als das ==. Wie bei Punkt vor Strich, wo
>> zuerst die Multiplikation errechnet wird (z.B.: in 5+3*4) wird das ||
>> vor dem == errechnet.
>
> Also: Die höchste Priorität hat ==, es folgt || und schliesslich das
> "or". Dazwischen gibt es noch einige andere.
> Das Problem hier dürfte vielmehr daran liegen, dass "1" zu true
> ausgewertet wird, aber ebenso jeglicher andere String, der ungleich 0
> ist.

da hat doch einer aufgepasst .. ich hatte auch kurz gestutzt ... ;-)

vermutlich meinte Yannik, oder hat es verwechselt mit, sowas ähnliches wie:

while ($continue && $row = db_fetch($result)) { ... }
while ($continue and $row = db_fetch($result)) { ... }

mit klammern zur Verdeutlichung:

while (($continue) && ($row = db_fetch($result))) { ... }
while (($continue and $row) = (db_fetch($result))) { ... }

da haben wir nun wirklich zwei unterschiedliche Anweisungen ... falls das 
zweite so überhaupt funktioniert ...


-- 
Sebastian Mendel

php::bar PHP Wiki   -   Listenarchive