Funktionen


Arbeiten mit Funktionen

Ein wichtiger Baustein der PHP-Programmierung sind Funktionen. Je nach installierter Version, hält PHP eine Bibliothek vordefinierter Funktionen für bestimmte Routinen bereit. Daneben besteht die Möglichkeit, diese Bibliothek um individuelle Funktionen zu erweitern. Funktionen sind in sich geschlossenene Programmabschnitte, auf die von überall her zugegriffen werden kann. Es gibt Funktionen, die einen Rückgabewert liefern und solche, die irgendetwas initiieren, ohne dass man etwas davon mitbekommt.

Definition von Funktionen
Eine in PHP vordefinierte Funktion haben wir gleich zu Beginn des Tutorials kennengelernt: time (). Will man selber eine Funktion anlegen, muss man sie mit dem Wort „function“ einleiten. Danach folgt ein individueller Name, wobei sich die Benennung nach den Konventionen, die auch für Variablen gelten, richtet.

<?php
echo time ();
//gibt aus: 1290871361
?>

Parameter
Im Anschluss an den Namen stehen runde Klammern „()“. Zwischen diesen Klammern können Parameter an die Funktion übergeben werden. Da eine Funktion ein in sich geschlossener Block ist, gelten in ihr auch nur die Variablen, die in ihrem Innern definiert werden. Werte von außen können über Parameter ins Innere der Funktion geschleust werden und stehen damit dort zur Verfügung. Es gibt Funktionen, bei denen zwingend Parameter übergeben werden müssen und solche, die wie „time ()“ auch ohne funktionieren. Die eigentlichen Berechnungen und Operationen der Funktion finden zwischen den geschweiften Klammern „{}“ statt. Das folgende Beispiel zeigt eine Funktion, die den UNIX-Zeitstempel mit einer kurzen Meldung kombiniert ausgibt.

<?php
function zeitstempel_ausgeben (){
$zeitstempel = time ();
$ausgabetext = „Seit dem 1.1. 1970 sind $zeitstempel Sekunden vergangen.“;
return ($ausgabetext);
}
$ausgabetext = zeitstempel_ausgeben ();
echo $ausgabetext;
?>

Innerhalb der Funktion „timestamp_ausgeben“ wird zunächst mit der Funktion „time ()“ der UNIX-Zeitstempel vom Server ermittelt. Dieser Wert wird in einen Ausgabetext implementiert und mit der Funktion „return ()“ außerhalb der Funktion abrufbar gemacht.

Wie Parameter an eine Funktion übergeben werden, zeigt das folgende Beispiel. Die Zahl 155 wird übergeben und auf diesen Betrag sollen 19 Prozent Mehrwertsteuer gerechnet werden. Die Gesamtsumme wird mit der Funktion „round ()“ auf zwei Stellen nach dem Komma gerundet und kommt am Ende heraus.

<?php
function mehrwertsteuer ($betrag){
$mehrwertsteuer = round ((($betrag / 100) * 19), 2);
$gesamt = $betrag + $mehrwertsteuer;
return ($gesamt);
}
$betrag = 155;
$gesamt = mehrwertsteuer ($betrag);
echo $gesamt;
//gibt aus: 184.45
?>

Funktionen können wie hier einen Parameter erhalten oder auch mehrere, durch Komma voneinander getrennt. Dabei spielt es keine Rolle, ob die Parameter als einfache Variablen, als Array oder aber direkt übergeben werden. Bei der direkten Übergabe ist allerdings zu beachten, dass Strings (Texte) immer in Anführungszeichen („…“) geschrieben werden.

Vorteile bei der Programmstrukturierung
Als in sich geschlossene Einheiten fördern Funktionen eine saubere Programmstruktur und erleichtern die Fehlersuche. Sie helfen, den Programmcode überschaubar zu halten, da sich wiederholende Programmierschritte nur ein einziges Mal notiert werden müssen – ein Fehler muss entsprechend auch nur an einer Stelle gefunden und korrigiert werden. Häufig benötigte und in Funktionen zusammengefasste Routinen lassen sich darüber hinaus als Script-Bibliothek sammeln und so für andere Programme nutzbar machen.

Voreingestellte Parameter
Statt einer Funktion immer wieder dieselben Parameter zu übergeben, kann man ihr auch voreingestellte Parameter zuweisen, die in der Parameterliste immer ganz rechts stehen müssen. Wird dieser Parameter beim Aufruf nicht mit angegeben, greift die Funktion auf den voreingestellten Wert zurück. Nehmen wir einmal das Beispiel mit der Mehrwertsteuer. Es gibt in Deutschland eine Mehrwertsteuer von 19 Prozent und eine Mehrwertsteuer für Nahrungsmittel und Bücher, die bei 7 Prozent liegt. Soll nun ein Onlineshop erstellt werden, in dem überwiegend mit 19 Prozent gerechnet werden muss und nur für ein paar Produkte mit 7 Prozent, kann man den Standardparameter auf 19 Prozent festlegen. Er ändert sich erst, wenn explizit die 7 übergeben wird.

<?php
function mehrwertsteuer ($betrag, $mwst_satz = 19){
$mehrwertsteuer = round ((($betrag / 100) * $mwst_satz), 2);
$gesamt = $betrag + $mehrwertsteuer;
return ($gesamt);
}
$betrag = 155;
$gesamt = mehrwertsteuer ($betrag); //hier wird mit 19 Prozent gerechnet
echo $gesamt; //gibt aus: 184.45

$betrag = 155;
$gesamt = mehrwertsteuer ($betrag, 7); //hier wird mit 7 Prozent gerechnet
echo $gesamt; //gibt aus: 165.85
?>