Kapitel 13. Funktionen

Inhaltsverzeichnis
Vom Nutzer definierte Funktionen
Funktionsparameter
Rückgabewerte
old_function
Variablenfunktionen

Vom Nutzer definierte Funktionen

Eine Funktion kann wie folgt definiert werden :

 
function

 
foo

 
(

 
$arg_1

 
,

 
$arg_2

 
,

 
...

 
,

 
$arg_n

 
)

 
{

 
echo

 
"Beispielfunktion.\n"

 
;

 
return

 
$retval

 
;

 
}





Jeder beliebige korrekte PHP-Code kann in einer Funktion vorkommen , sogar andere Funktionen und Klassen - Definitionen .

In PHP 3 müssen Funktionen definiert sein , bevor man auf sie verweist . In PHP4 ist das nicht mehr erforderlich , außer wenn eine Funktion nur bedingt definiert wird , wie in den beiden untenstehenden Beispielen gezeigt .

Wenn eine Funktion nur unter bestimmten Bedingungen definiert wird , muß die Definition dieser Funktion noch vor deren Aufruf abgearbeitet werden .

Beispiel 13-1 . Bedingte Funktionen

 
?php

 
$makefoo

 
=

 
true

 
;

 
/

 
*

 
Wir

 
können

 
foo(

 
)

 
von

 
her

 
aus

 
nicht

 
aufrufen

 
,

 
da

 
sie

 
noch

 
nicht

 
existiert

 
,

 
aber

 
wir

 
können

 
bar(

 
)

 
aufrufen

 
*

 
/

 
bar()

 
;

 
if

 
($makefoo

 
)

 
{

 
function

 
foo

 
(

 
)

 
  {

 
echo

 
"Ich

 
existiere

 
nicht

 
,

 
bis

 
mich

 
die

 
Programmausführung

 
erreicht

 
hat.\n"

 
;

 
  }

 
}

 
/

 
*

 
Nun

 
können

 
wir

 
foo(

 
)

 
sicher

 
aufrufen

 
,

 
da

 
$makefoo

 
als

 
true

 
ausgewertet

 
wurde

 
*

 
/

 
if

 
($makefoo

 
)

 
foo()

 
;

 
function

 
bar(

 
)

 
{

 
{

 
echo

 
"Ich

 
existiere

 
sofort

 
nach

 
Programmstart.\n"

 
;

 
}

 

?



Beispiel 13-2 . Funktionen innerhalb von Funktionen

 
?php

 
function

 
foo(

 
)

 
{

 
function

 
bar(

 
)

 
{

 
echo

 
"Ich

 
existiere

 
nicht

 
,

 
bis

 
foo(

 
)

 
aufgerufen

 
wurde.\n"

 
;

 
  }

 
}

 
/

 
*

 
Wir

 
können

 
bar(

 
)

 
noch

 
nicht

 
aufrufen

 
,

 
da

 
es

 
nicht

 
existiert

 
*

 
/

 
foo()

 
;

 
/

 
*

 
Nun

 
können

 
wir

 
auch

 
bar(

 
)

 
aufrufen

 
,

 
da

 
sie

 
durch

 
die

 
Abarbeitung

 
von

 
foo(

 
)

 
verfügbar

 
gemacht

 
wurde

 
*

 
/

 
bar()

 
;

 

?





PHP unterstützt weder das Überladen von Funktionen , noch ist es möglich , zuvor deklarierte Funktionen neu zu definieren oder die Definition zu löschen .

PHP 3 unterstützt keine variable Anzahl von Parametern , obwohl Vorgabewerte für Parameter unterstützt werden ( weitere Informationen finden Sie unter Vorgabewerte für Parameter ) . PHP 4 unterstützt beides : siehe Variable Parameteranzahl und die Funktionsreferenzen für func_num_args( ) , func_get_arg( ) und func_get_args( ) für weitere Informationen .