Funktionsparameter

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 :

 
function

 
rechne_array(

 
$eingabe

 
)

 
{

 
echo

 
"$eingabe[0

 
]

 
+

 
$eingabe[1

 
]

 
=

 
"

 
,

 
$eingabe[0]+$eingabe[1]

 
;

 
}





Verweise als Parameter übergeben

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 :

 
function

 
fuege_etwas_anderes_an

 
(

 
$string

 
)

 
{

 
$string

 
.=

 
'und

 
nun

 
zu

 
etwas

 
anderem

 
.'

 
;

 
}

 
$str

 
=

 
'Dies

 
ist

 
ein

 
String

 
,

 
'

 
;

 
fuege_etwas_anderes_an

 
($str)

 
;

 
echo

 
$str

 
;

 
/

 
/

 
Ausgabe

 
:

 
'Dies

 
ist

 
ein

 
String

 
,

 
und

 
nun

 
zu

 
etwas

 
anderem

 
.

 
'





Vorgabewerte für Parameter

Eine Funktion kann C++-artige Vorgabewerte für skalare Parameter wie folgt definieren :

 
function

 
machkaffee

 
(

 
$typ

 
=

 
"Cappucino"

 
)

 
{

 
return

 
"Ich

 
mache

 
eine

 
Tasse

 
$typ.\n"

 
;

 
}

 
echo

 
machkaffee

 
()

 
;

 
echo

 
machkaffee

 
("Espresso")

 
;





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 :

 
function

 
mach_joghurt

 
(

 
$typ

 
=

 
"rechtsdrehendes"

 
,

 
$geschmack

 
)

 
{

 
return

 
"Mache

 
einen

 
Becher

 
$typ

 
$geschmack-joghurt.\n"

 
;

 
}

 
echo

 
mach_joghurt

 
("Brombeer")

 
;

 
/

 
/

 
arbeitet

 
nicht

 
wie

 
erwartet





Die Ausgabe dieses Beispiels ist: :





 
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 :

 
function

 
mach_joghurt

 
(

 
$geschmack

 
,

 
$typ

 
=

 
"rechtsdrehendes"

 
)

 
{

 
return

 
"Mache

 
einen

 
Becher

 
$typ

 
$geschmack-joghurt.\n"

 
;

 
}

 
echo

 
mach_joghurt

 
("Brombeer")

 
;

 
/

 
/

 
arbeitet

 
wie

 
erwartet

 
.





.. . und jetzt ist die Ausgabe :

 
Mache

 
einen

 
Becher

 
rechtsdrehendes

 
Brombeer-Joghurt

 
.





Variable Anzahl von Parametern

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 .