Funktionen sind dafür da, Programmlogik zu bündeln, die man immer wieder braucht. Dadurch vermeidet man Redundanz, somit auch Fehlerquellen und muss bei einer Änderung nur an einer Stelle eingreifen. Der Aufbau einer Funktion sieht so aus:
<?php function NAME_DER_FUNKTION (parameter1, parameter2, ...) { //auszuführender Code } ?>
Nun wollen wir mit einer Funktion zwei Zahlen addieren und die Rechnung + Ergebnis ausgeben:
<?php function addieren($zahl1, $zahl2) { echo $zahl1.' + '.$zahl2.' = '.($zahl1+$zahl2).'<br />'; } addieren(5, 10); ?>
Unsere Funktion nennen wir sinngemäß „addieren“ und erwarten zwei Parameter, „$zahl1“ und „$zahl2“. Parameter sind Möglichkeiten, Werte an unsere Funktion zu übergeben. Man kann auch Funktionen programmieren, die keinen Parameter erwarten (leere Klammer), aber da wir hier zwei Zahlen addieren wollen, brauchen wir zwei Parameter.
Der Code innerhalb der Funktion sollte selbsterklärend sein.
Nun können wir beliebige Zahlen miteinander addieren und zudem so häufig wir wollen:
<?php function addieren($zahl1, $zahl2) { echo $zahl1.' + '.$zahl2.' = '.($zahl1+$zahl2).'<br />'; } addieren(5, 10); echo '<br />'; addieren(2732, 19883); echo '<br />'; addieren(1, 1); echo '<br />'; for($i=1; $i < 30; $i++) { addieren($i, $i*10); echo '<br />'; } ?>
Wert mit return zurückgeben
Häufig möchte man, dass die Funktion einen Wert zurückgibt, also zuerst wird etwas berechnet und abhängig vom Ergebnis dieser Berechnung, gibt die Funktion einen Wert zurück. Im folgenden Beispiel möchten wir, dass unsere Funktion uns nur das Ergebnis der Addition zurückgibt:
<?php function addieren($zahl1, $zahl2) { $ergebnis = $zahl1 + $zahl2; return $ergebnis; } for($i=1; $i < 10; $i++) { echo $i.' + '.$i.' = '.addieren($i, $i); } ?>
Optionale Parameter
Manchmal möchte man eine Funktion haben, die einen optionalen Parameter beinhaltet:
<?php function addieren($zahl1, $zahl2=5) { echo $ergebnis = $zahl1 + $zahl2; } addieren(10,12); echo '<br />'; addieren(10); ?>
Wenn beide Werte angegeben sind, läuft alles wie gewohnt. Wird aber nur ein Parameter befüllt, erhält der zweite Parameter automatisch den Wert „5“.
Funktionen sind ein mächtiges Werkzeug und ohne kommt man als PHP Programmierer einfach nicht aus. Da aber bestimmte Funktionen von so gut wie allen PHP Entwicklern benötigt werden, werden diese von PHP direkt zur Verfügung gestellt. Schau dir dazu den Unterartikel PHP Standard Funktionen an.