Götz: MOD bzw. %

Beitrag lesen

Hallo Charlie!

und zB bei jeder 3. Zahl müsste es ja eigentlich so funtkionieren:
if ($loop % 3)
und bei jeder 2.Zahl so:
else if ($loop % 2)

Was mach ich falsch bzw. was ist mein Denkfehler.

Der Modulo-Operator gibt ja den Rest in Form eines Integer zurück.
Deine if-Konstruktion erwartet einen boolschen Ausdruck.

Und da sind wir beim Problem:
Bei jeder dritten Zahl gibt $loop % 3 vermutlich 0 zurück.
Dieser Integer 0 wird dann in einen Boolean konvertiert. Wie Du aus dem Manual (siehe unten angeführte Links) erfahren kannst, wird 0 zu false.

Dein Ausdruck müßte meiner Ansicht nach also z.B. $loop % 3 == 0 heißen.
Das würde bei Rest 0 dann true zurückgeben und das ist es ja, was Du willst.

Siehe auch PHP Manual: Arithmetic Operators und PHP Manual: Types: Booleans und PHP Manual: Appendix O. PHP type comparison tables.

MfG
Götz

--
Losung für Mittwoch, 29. Dezember 2004
Gleichwie ich über sie gewacht habe, auszureißen und einzureißen, so will ich über sie wachen, zu bauen und zu pflanzen, spricht der Herr. (Jeremia 31,28)
Seid nun geduldig, bis zum Kommen des Herrn. Siehe, der Bauer wartet auf die kostbare Frucht der Erde und ist dabei geduldig, bis sie empfange den Frühregen und Spätregen. (Jakobus 5,7)
(Losungslink)