Hallo Barksalot,
ja, Code kommentiert man so. Vielleicht nicht GANZ so viel, aber jede nichttriviale fachliche Überlegung oder Entscheidung schreibt man auf (z.B. diese Sache mit $day = 1 - $weekDayBeforeFirst;
. Schau Dir alten Code von Dir an - weißt Du an jeder Stelle, was Du Dir dabei gedacht hast? Würdest Du Dir nicht wünschen, dass da eine Notiz bei wäre? Kommentare sind Post - von Dir an Dein um 6 Monate älteres Selbst, das dafür zutiefst dankbar sein wird.
Noch wichtiger als Kommentare sind sinnvoll benannte Variablen und Funktionen. Wenn die Namensgebung gut ist, spricht der Code im Wesentlichen für sich selbst (ich hoffe, ich habe das halbwegs gut geschafft). Und PHPDocs sind die ideale Hilfe, wenn man eine IDE hat, die das unterstützt. Ich arbeite seit 20 Jahren mit dem Intellisense von Visual Studio, und wenn man auf einem Funktionsnamen nur Strg+Space drücken muss und dann eine Beschreibung plus Parameter angezeigt bekommt, müllt man seinen Kopf mit viel weniger Kram zu. Alle Library-Funktionen von .net bringen die Intellisense-Doku mit. Und dann möchte man das für die eigenen auch haben. Der Aufwand lohnt sich.
Die Sache mit dem $header ist eine punktuelle Ungenauigkeit von mir. Die Lösung zu finden sei als leichte Übung dem Studenten überlassen.
Die Meldung über die fehlenden Indizes verstehe ich zur Zeit auch nicht. Die Meldung kommt, wenn man auf einen Array-Eintrag zugreifen will, der nicht existiert. Dass also $termin ein Array ist, aber keinen Eintrag unter dem Namen 'kt_datum' enthält. Vom Code her sehe ich nicht, wie das passieren könnte. Ist es möglich, dass Du was falsch kopiert hast?
Mit Draufgucken kommt man nicht weiter. Man muss sich von der Stelle, wo der Fehler gemeldet wird, rückwärts hangeln. Immer mit var_dump überprüfen, ob die Variablen die erwarteten Werte enthalten.
Wichtige Kontrollpunkte wären:
- zu Begin von formatiere_termin -> kommt da ein sinnvoller Termin an
- am Ende von kalender_termine -> liefert die Abfragefunktion ein korrektes Termine-Array
- In der Leseschleife von kalender_termine -> stehen in den gebundenen Variablen sinnvolle Werte (DAS würde ich jetzt erstmal als gegeben voraussetzen).
Rolf
sumpsi - posui - clusi