# 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.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    <?php
    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 Hannover", "30539", "Hannover");

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

Ausgabe:
vollständige Übergabe:
Bernd ist an der HS Hannover, 30539, Hannover.
teilweise Übergabe:
Bettina ist an der HS Emden/Leer, 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.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    <?php
    function writeUni($name, $uni = "HS Emden/Leer", $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 Hannover", "30539", "Hannover");

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

Ausgabe:
vollständige Übergabe:
Bernd ist an der HS Hannover, 30539, Hannover.
teilweise Übergabe:
Bettina ist an der HS Emden/Leer, 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.