4.6.2 Standard-Werte für Unterprogramme

In PHP können Parameter einer Funktion mit Standardparametern versehen werden, was erlaubt, dass diese Parameter beim späteren Funktionsaufruf nicht übergeben werden müssen. Sehen Sie sich die Zeilen 1, 8 & 12 an.

function writeUni($name, $uni, $zip, $city = "Emden")
{
    echo "$name ist an der $uni, $zip, $city.<br>";
}

echo "vollständige Übergabe:<br>";
// Vier Werte werden nun übergeben
writeUni("Bernd", "HS EL", "26723", "Emden"); 

echo "<br>teilweise Übergabe:<br>";
// Gut, wenn es einen Standardparameter gibt (hier: "Emden")
writeUni("Bernd", "HS EL", "26723");

Ausgabe:
vollständige Übergabe:
Bernd ist an der HS EL, 26723, Emden.

teilweise Übergabe:
Bernd ist an der HS EL, 26723, Emden.

Nutzung mehrerer Standardparameter

Es ist auch möglich mehrere Standardparameter anzugeben. Die Standardparameter müssen immer am Ende der Parameterliste in der Funktion stehen und die Abarbeitung erfolgt in der Reihenfolge der Nennung.

function writeUni($name, $uni = "HS EL", $zip = "26723", $city = "Emden")
{
    echo "$name ist an der $uni, $zip, $city.<br>";
}

echo "vollständige Übergabe:<br>";
// Vier Werte werden nun übergeben
writeUni("Bernd", "HS EL", "26723", "Emden"); 

echo "<br>teilweise Übergabe:<br>";
// Nutzung aller Standardparameter
writeUni("Bernd");

Ausgabe:
vollständige Übergabe:
Bernd ist an der HS EL, 26723, Emden.

teilweise Übergabe:
Bernd ist an der HS EL, 26723, Emden.

Es ist aber nicht möglich, im Funktionsaufruf nur den Namen und den Ort anzugeben writeUni("Bernd", "Leer"); und auf die "mittleren" Standardparameter zuzugreifen, da die Übergabe genau in der Reihenfolge des Aufrufs erfolgt.

Praxisbeispiel

Die Nutzung von Standardparametern bietet sich beispielsweise an, wenn die Funktion mit einer unterschiedlichen Anzahl von Werten aus einem HTML-Formular arbeiten soll.

Aufgabe

Schreiben Sie eine Funktion, die ein Formularfeld erzeugt. Als Standard soll das Formularfeld eine Länge von 15 Zeichen haben.

echo "<input type=\"text\" name=\"$name\" size=\"$size\" id=\"$name\">";

Rufen Sie das Formularfeld aus dem Hauptprogramm auf und erstellen Sie somit ein Formular mit den Feldern Name, Vorname, Straße, PLZ, Ort. Das Formularfeld PLZ soll eine size=5 haben. Alle anderen Felder sollen den Default 15 nutzen.