5.3.7 Selbsttest Nr. 2 zu OOP in PHP
Einige Übungen (mit Lösungen) und Aufgaben (ohne Lösungen) zum Verständnis.
Gegeben ist der folgende PHP-Code:
Übung
Welche Ausgabe erzeugt dieser Sourcecode auf dem Browser?
Lösung
Ausgabe:
Ich habe ein Deutsches Reitpony und reite in der Halle
Ich habe ein Welsh B und reite am Strand
Übung
Schreiben Sie den Sourcecode so um, dass die Ausgabe nicht mehr in der Methode erfolgt, sondern die Methode einen String an das Hauptprogramm liefert, der dort ausgegeben wird.
Lösung
Hauptprogramm ergänzen
Aufgabe
Schreiben Sie das Programm weiter, sodass auf dem Browser ausgegeben wird:
a) "Der Edelmann besitzt einen Goldklumpen".
b) Nutzen Sie dann eine Stringfunktion, damit der Großbuchstabe E erzeugt wird und ausgegeben wird: "Der Edelmann besitzt einen Goldklumpen".
c) Und mit Hilfe einer Schleife dann die drei Sätze:
- "Der Ritter besitzt einen Helm"
- "Der Edelmann besitzt einen Goldklumpen"
- "Der Zauberer besitzt einen Stab"
Beginnen Sie mit dem folgenden Programmrahmen:
Wichtige Aufgabe Klassen/Methoden statt Funktionen verwenden
Wissen anwenden
Diese Aufgabe ist für den weiteren Wissenserwerb total wichtig! Lesen Sie sich bitte zunächst alle Aufgabenteile durch und gehen Sie dann schrittweise wie beschrieben vor.
-
Schreiben Sie das Programm formular2.php so um, dass aus den bisherigen Funktionen nun Methoden werden (Sichtbarkeit public). Erstellen Sie also eine Klasse Html und instanzieren Sie diese Klasse im Hauptprogramm. Aus den Funktionsaufrufen im Hauptprogramm werden nun Methodenaufrufe. Probieren Sie das Programm anschließend aus.
-
Schreiben Sie die Methoden so um, dass sich darin keine echo-Befehle mehr befinden. Die echo-Ausgabe soll nur noch im Hauptprogramm stattfinden.
-
Lagern Sie nun die Klasse in eine eigene Datei Html.php aus und vergessen Sie nicht im Hauptprogramm eine Zeile einzufügen mit der die Klasse inkludiert wird. Kommentieren Sie nun die Klasse (Kommentarheader und Kommentare an den wichtigen Programmstellen).
-
Bearbeiten Sie die Datei formular2a.php entsprechend, sodass auch hierin nur noch die Methodenaufrufe der Klasse Html.php vorhanden sind.
-
Und wer es jetzt wirklich schön mag, der sollte die Inhalte der Dateien formular2.php und formular2a.php nun in einer Datei index.php zusammenfassen. Die Abfrage, ob die Formularseite oder die Ausgabeseite angezeigt wird, soll mit einer Fallunterscheidung (= if-Abfrage) erfolgen, bei der das Array
$_POST
aufempty()
überprüft wird.
Hier das zuvor schon einmal gezeigte Programm
Ausgabe:
Screenshot des erzeugten Formulars:
Das Hauptprogramm besteht nur aus Funktionsaufrufen. Die Daten werden also an die Datei formular2.php
geschickt und sind dort im assoziativen Array $_POST
gespeichert. Durch print_r()
geben wir diese hier vorformatiert zum Testen aus.
Ausgabe:
Screenshot der erzeugten Ausgabeseite, wenn zuvor in die Formularfelder die Daten "Jörg" und "Thomaschewski" eingetragen wurden: