Der Martin: PHP Parse error

Beitrag lesen

Hallo,

  if(($count%50)==0)
    {
    }

ja das sollte funktionieren; die Klammer um $count%50 kannst du dir übrigens sparen, da der Modulo-Operator immer vor dem Vergleichsoperator ausgewertet wird: https://secure.php.net/manual/en/language.operators.precedence.php

stimmt zwar, aber ich würde trotzdem nicht empfehlen, die Klammer wegzulassen. Nicht immer ist die Operator-Rangfolge so, wie man sie intuitiv erwarten würde, und Logikfehler aufgrund einer falschen Bearbeitungsreihenfolge sind verdammt schwer aufzuspüren.

Ich hatte erst neulich so einen Fall (allerdings in C), da hatte ich sinngemäß stehen:

if (flags & 1<<(i & 7))
   ...

Ich hatte gedacht, der Bit-Shift-Operator bindet stärker als ein Bitwise-And. Falsch gedacht. Nach einer längeren Debug-Session habe ich dann gemerkt, dass ich den Ausdruck 1<<(i & 7) nochmal klammern muss.

So long,
 Martin