Wie gebe ich bei PHP mehrere Bedingungen in einer Schleife ein?

2 Antworten

Von Experte FaTech bestätigt

Mit dem "&&"-Operator kannst du boolsche Ausdrücke miteinander verknüpfen.

Was du hier doppelst ist aber nicht die Abbruchbedingung, sondern die ganze Schleife.

Was du möchtest wäre nicht

for($td = 1; $td <= $zellen; $td++ && $tageszahl = 1; $tageszahl <= $eintrag; $tageszahl++)

sondern

for($td = 1, $tageszahl = 1; ($td <= $zellen) && ($tageszahl <= $eintrag); $td++, $tageszahl++)

EDIT:

Es zählt im übrigen eher als Bad-Practice mehrere Zählvariablen in einer For-Schleife zu haben würde ich behaupten.
Zumindest sieht man es eher selten.


MonkeyKing  21.06.2022, 17:26

Jo, die Klammern sind aber überflüssig

for($td = 1, $tageszahl = 1; $td <= $zellen && $tageszahl <= $eintrag; $td++, $tageszahl++)
1
Visierhoch 
Fragesteller
 21.06.2022, 19:42

Ich wollte eigentlich so einen kleinen Monatskalender wie den von Schattenbaum erstellen:

https://www.schattenbaum.net/php/kalender.php

Wenn die Lösung mit mehreren Bedingungen nicht optimal ist, dann hat das also Schattenbaum auch nicht korrekt gelöst? (Programmierzeile 25)

Seh ich das richtig?

0
Destranix  21.06.2022, 20:02
@Visierhoch

Mehrere Abbruchbedingungen sind generell kein Problem und durchaus üblich. Mehrere Initialisierungen und Inkrementierungen sind aber nicht so üblich.

Das, was du verlink hast, hat in Zeile 25 aber auch garkeine mehreren Abbruchbedingungen, sondern nur eine. Diese eine ist aber recht unübersichtlich, somit nicht gut.

0
Wie gebe ich bei PHP mehrere Bedingungen in einer Schleife ein?

Gar nicht. Eine for-next-Schleife hat einen Zähler. Dieser wird inkrementiert. Sobald dieser Zähler den Wert der Ende-Bedingung erreicht hat, wird die Schleife verlassen.

Das hier geht nicht:

for($td = 1; $td <= $zellen; $td++ && $tageszahl = 1; $tageszahl <= $eintrag; $tageszahl++)

Was willst du denn erreichen?

Alex


Visierhoch 
Fragesteller
 21.06.2022, 19:31

Ich lerne noch PHP und möchte gerne einen kleinen Monatskalender wie hier erstellen:

https://www.schattenbaum.net/php/kalender.php

Leider steige ich da aber nicht so ganz durch den Code und ich glaube der Kalender von Schattenbaum stammt noch aus PHP 5 Zeiten.

Ich selber möchte folgendes Schritt für Schritt versuchen

Zuerst möchte ich versuchen, eine Tabelle mit 7 Zellen (Mo – So) zu erstellen, wobei in jeder Zelle der fortlaufende Tag des Monats angezeigt wird.

Danach wollte ich erreichen, dass der Erste des Monats auch dem korrekten Tag der Woche zugewiesen wird.

Und zum Schluß würde ich gerne die leeren Felder am Monatsanfang bzw. Monatsende mit den Tagen des Vormonats bzw. des Folgemonats auffüllen.

0