Funktionen
- Eine Funktion ist ein Block von Anweisungen, die in einem Programm wiederholt verwendet werden können.
- Eine Funktion wird nicht sofort ausgeführt, wenn eine Seite geladen wird.
- Eine Funktion wird durch einen Aufruf der Funktion ausgeführt.
Syntax
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.
Beispiel
Funktion ohne Übergabe- und Rückgabewert
<?php function sagHallo() { echo "Hallo Welt"<br />; } sagHallo(); echo "Huhu <br />"; sagHallo(); ?>
Aufgabe:
Probiere das Beispiel in deinem Webspace aus.
Funktionen mit Übergabewert
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 />"; ?>
Aufgabe:
- Teste alle Beispiele in deinem Webspace
- Finde heraus, wie man innerhalb einer Funktion auf globale Variablen zugreifen kann.
- Erweitere das Divisionsbeispiel durch ein Formular, in dem du die beiden Werte eingeben kannst. Welchen Sonderfall solltest du überprüfen?
- Erweitere dein Formular um ein weiteres Feld, in dem du weitere Rechenoperationen auswählen kannst. (Fakultät, Logarithmus?. Was ist die größte Zahl, deren Fakultät du berechnen kannst?)
- Wenn du Startschwierigkeiten hast, kannst du mit der Vorlage für den Rechner beginnen.