function <NAME-DER-FUNKTION> ( <ÜBERGABEWERTE> ) { <AUSZUFÜHRENDER CODE>; return ( <ZURÜCKGEBENER WERT> ); }
Eine Funktion muss keine Übergabewerte haben, sie muss auch nicht zwingend einen Wert zurückgeben.
Funktion ohne Übergabe- und Rückgabewert
<?php function sagHallo() { echo "Hallo Welt"<br />; } sagHallo(); echo "Huhu <br />"; sagHallo(); ?>
Probiere das Beispiel in deinem Webspace aus.
Beim Funktions-Aufruf können Inhalte übergeben werden, im Beispiel teilen(18,2)
. 18
und 2
heißen dabei Argumente oder Übergabwerte.
Die Funktion nimmt die Argumente dabei in der angebenen Reihenfolge entgegen und weist diese den Variablen $zaehler
und $nenner
zu.
<?php function teilen( $zaehler, $nenner ) { $bruch=$zaehler/$nenner; echo $bruch; } echo "<p>Berechnung von 18 / 2 = "; teilen(18,2); ?>
Alle Variablen, die innerhalb der Funktion deklariert oder initialisiert werden, gelten nur lokal innerhalb des Funktionsblocks. Probiere den folgenden Code aus:
<?php function teilen( $zaehler, $nenner ) { $bruch=$zaehler/$nenner; } echo "<p>Berechnung von 18 / 2 = "; teilen(18,2); echo $bruch; ?>
Da $bruch
außerhalb der Funktion nicht existiert, erfolgt hier eine Fehlermeldung.
Um dieses Problem zu lösen, kann man Rückgabewerte übergeben. Dabei kehrt der Programmablauf an die Stelle zurück, an der die Funktion aufgerufen wurde und übergibt den mit return
angegebenen Wert. Um diesen Rückgabewert weiterzuverarbeiten, muss man ihn im Hauptprogramm in einer Variablen ablegen.
<?php function teilen( $zaehler, $nenner ) { $bruch=$zaehler/$nenner; return $bruch; } echo "<p>Berechnung von 18 / 2 = "; $ergebnis=teilen(18,2); // speichert den Rückgabewert der Funktion in der Variablen $ergebnis echo $ergebnis; ?>
Aufpassen muss man, wenn man im globalen Programmbereich und innerhalb von Funktionen Variablen mit dem selben Namen verwendet:
<?php function teilen( $zaehler, $nenner ) { $bruch=$zaehler/$nenner; echo "Lokal in der Funktion: $bruch<br />"; return $bruch; } $bruch=500; echo "Global vorher: $bruch <br /> "; echo "<p>Berechnung von 18 / 2 = "; $ergebnis=teilen(18,2); echo $ergebnis; echo "<br />Global nachher: $bruch <br />"; $bruch=teilen(20,2); // hier wird die globale $bruch Variable mit //dem Rückgabewert überschrieben. echo "<br />Global am Ende: $bruch <br />"; ?>