Mit einer Parameterliste kann man Informationen an eine Funktion
übergeben. Die Parameterliste ist eine durch Kommas getrennte
Liste von Variablen und/oder Konstanten.
PHP unterstützt die Weitergabe von Parametern als Werte (das ist
der Standard), als Verweise, und
als Vorgabewerte.
Die Übergabe einer variablen Anzahl von Parametern wird nur von
PHP 4 und höher unterstützt, siehe Variable
Parameteranzahl und die Funktionsreferenzen für
func_num_args(),
func_get_arg() und
func_get_args() für weitere Informationen.
Durch die Übergabe eines Arrays mit Parametern kann man auch
in PHP 3 einen ähnlichen Effekt erreichen:
Normalerweise werden den Funktionen Werte als Parameter
übermittelt. Wenn man den Wert dieses Parameters innerhalb der
Funktion ändert, bleibt der Parameter außerhalb der Funktion
unverändert. Wollen Sie aber genau das erreichen, dann müssen
Sie die Parameter als Verweise (Referenzen) übergeben.
Wenn eine Funktion einen Parameter generell als Verweis behandeln
soll, setzt man in der Funktionsdefinition ein kaufmännisches Und
(&) vor den Parameternamen:
Eine Funktion kann C++-artige Vorgabewerte für skalare Parameter
wie folgt definieren:
Die Ausgabe von diesem kleinen Skript ist:
Ich mache eine Tasse Cappucino.
Ich mache eine Tasse Espresso. |
Der Vorgabewert muss ein konstanter Ausdruck sein, darf also (zum
Beispiel) keine Variable oder Element einer Klasse sein.
Bitte beachten Sie, dass alle Vorgabewerte rechts von den
Nicht-Vorgabeparametern stehen sollten; - sonst wird es nicht
funktionieren. Betrachten Sie folgendes Beispiel:
Die Ausgabe dieses Beispiels ist::
Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Mache einen Becher Brombeer-joghurt. |
Nun vergleichen Sie bitte oberes Beispiel mit folgendem:
... und jetzt ist die Ausgabe:
Mache einen Becher rechtsdrehendes Brombeer-Joghurt. |
PHP 4 unterstützt eine variable Anzahl von Parametern in
benutzerdefinierten Funktionen. Das Handling dieser Parameter
fällt mittels der Funktionen func_num_args(),
func_get_arg() und
func_get_args() sehr leicht.
Es ist keine spezielle Syntax erforderlich. Die Parameter können
wie gehabt explizit in den Funktionsdeklarationen angegeben
werden, und werden sich wie gewohnt verhalten.