Funktionen
Funktionen sind dazu gedacht, Programmcode auszulagern und um diesen später mehrmals verwenden zu können. Wie Funktionen aufgerufen werden, haben Sie bereits am Anfang dieses Tutorials kennengelernt. Zur Erinnerung: Sie notieren den Namen der Funktion gefolgt von einem runden Klammernpaar. Innerhalb des Klammernpaars können nun mehrere Parameter durch Komma getrennt an die Funktion übergeben werden. Gibt die Funktion einen Wert zurück, so können wir den Rückgabewert der Funktion z. B. in einer Variablen speichern oder diesen einer anderen Funktion übergeben.
In diesem Thema wollen wir uns damit beschäftigen, wie Sie eigene Funktionen definieren können. Der Aufruf von
selbst definierten Funktionen unterscheidet sich nicht vom Aufruf der im PHP-Interpreter integrierten Funktionen. Um eine
Funktion zu definieren, notieren wir das Schlüsselwort function
gefolgt von dem Funktionsnamen (dieser
muss innerhalb des aktuellen Objekts eindeutig sein, dazu später mehr) und einem runden Klammernpaar. Nun folgt ein Block
aus geschweiften Klammern. Innerhalb des Blocks können Sie nun den Programmcode angeben, welcher ausgeführt werden soll,
wenn die Funktion aufgerufen wird.
<?php function gebeHalloAus() { echo 'Hallo Welt!'; } gebeHalloAus(); ?>
Wichtig: Wenn Sie innerhalb der Funktion Variablen deklarieren, sind diese nur innerhalb der Funktion zugänglich. Ein
Zugriff von außerhalb der Funktion ist nicht möglich, da die Variable sich in einem anderen Scope (Geltungsbereich)
befindet. Wenn Sie außerhalb der Funktion eine Variable (auch als globale Variable bezeichnet) definiert haben,
können Sie auf diese von der Funktion auch nur über einen kleinen „Umweg“ zugreifen. Hierfür existieren zwei Möglichkeiten:
Wenn Sie z. B. auf die globale Variable $meinName
zugreifen möchten, geben Sie innerhalb Ihrer Funktion den
Variablennamen $GLOBALS
an. Bei $GLOBALS
handelt es sich um ein assoziatives Array, welches alle
globale Variablen enthält. Ein Zugriff auf die globale Variable $meinName
wäre also über $GLOBALS['meinName']
innerhalb der Funktion möglich. Als zweite Möglichkeit können Sie innerhalb Ihrer Funktion (am besten am Anfang der
Funktion) die Anweisung global
gefolgt von dem Variablennamen angeben (z. B. global $meinName;
).
Globale Variablen existieren nur außerhalb von Objekten. Ist Ihre Variable Teil eines Objekts (dazu später mehr), sieht der
Zugriff auf die Objektvariable nochmals anders aus. Damit beschäftigen wir uns jedoch erst im Thema Objektorientierung.
Funktion mit Parametern
Natürlich können Sie auch Funktionen mit Parametern definieren. Hierfür geben Sie innerhalb der Klammern die Namen der Parameter an. Die Parameternamen dienen zum Zugriff auf die Parameterwerte innerhalb der Funktion. Die Parameternamen müssen so wie Variablennamen auch, eindeutig sein. Des Weiteren dürfen sich die Parameternamen nicht mit den Variablennamen innerhalb der Funktion (den sogenannten lokalen Variablen) überschneiden. In PHP können Sie Parameter auch als optional markieren. Hierfür müssen Sie dem Parameter, welcher optional sein soll, einen Standardwert zuweisen. Dies können Sie mit Hilfe des Zuweisungsoperators innerhalb der Funktionsdeklaration durchführen. Das folgende Beispiel zeigt eine Funktion mit einem Parameter, welcher optional ist.
<?php function gebeNamenAus($name = 'Peter') { echo 'Hallo '.$name.'!<br />'; } gebeNamenAus('Michael'); gebeNamenAus(); gebeNamenAus('Anna'); ?>
Wichtig: Die optionalen Parameter müssen sich immer am Ende befinden. Stellen Sie sich vor, Sie haben eine Funktion mit den Parametern a, b, c, d und e. Die Parameter d und e sind optional. Sie können diese Funktion nun auf drei verschiedene Arten aufrufen: mit den Parametern a, b und c, mit den Parametern a, b, c und d oder mit den Parametern a, b, c, d und e. Das Auslassen eines optionalen Parameters in der Mitte ist nicht möglich. Ein Aufruf mit den Parametern a, b, c und e ist also nicht möglich.
Funktion mit Rückgabewert
Um von einer Funktion aus einen Wert zurückzugeben, verwenden Sie das Schlüsselwort return
, gefolgt von dem
zurückzugebenden Wert und einem Semikolon am Ende. Durch das Ausführen der return
-Anweisung wird die
Funktions-Ausführung beendet. Bei einer Funktion, welche keinen Wert zurückgibt, können Sie die Anweisung
return;
also auch einfach nur dazu verwenden, um aus der Funktion herauszuspringen.
<?php function addiere($a, $b) { return $a + $b; } echo addiere(3, 5); ?>