Funktionen

Funktionen / Unterprogramme in PHP

Skripte mit viel Code werden schnell unübersichtlich. Ausserdem müssen wir auf die Variablen aufpassen ob wir diese nicht schon vorher benutzt haben und diese Verändern ohne das wir das wollen.

Um diese Situation zu verbessern gibt es Funktionen und Klassen.
In diesem Abschnitt geht es erstmal um Funktionen, da diese die Grundlage sind um später auch Objekte verstehen zu können.


Funktionen sind Unterprogramme. Wir geben der Funktion etwas as Parameter, die Funktion macht etwas mit dem gelieferten und gibt ein Ergebnis zurück.

Da es in PHP oberflächlich keine Datentypen gibt, kann man aus einer Funktion auch verschiedene Arten von Werten zurückgeben. Das kann man nutzen, sollte es sich jedoch überlegen und versuchen das die Rückgabe immer den gleichen Datentyp hat.

Vor PHP 5 wurden gemischte Rückgaben gerne benutzt um z.b.'false' zurückzugeben wenn in der Funktion ein Fehler aufgetreten ist. Seitdem es in PHP5 jedoch Exceptions zur Fehlerbehandlung gibt, gibt es eine wesentlich effizientere Möglichkeit um Fehler zu behandeln.


Nun aber zurück zu den Funktionen. Als Beispiel schreibe ich hier mal die Funktion Summe zum addieren von zwei Zahlen:

<?php
   function summe($zahl1, $zahl2) {
      $summe = $zahl1 + $zahl2;
      return $summe;
   }
?>

Das Schlüsselwort "function" leitet also eine Funktion ein. Danach kommt der Name der Funktion und in Klammer die Parameter.


Im Anweisungsblock wird beschrieben was passieren soll, und mit retrun wird das Ergebnis zurückgegeben. Wir können uns das "$summe" sogar sparen indem wir folgendes schreiben:

<?php
   function summe($zahl1, $zahl2) {
      return $zahl1 + $zahl2;
   }
?> 


Die Variablen zahl1 und zahl2 beschreiben welchen Variablennamen die übergebenen Varibalen innerhalb der Funktion haben.

Variablen die wir in der Funktion deklarieren haben nur Gültigkeit innerhalb der Funktion. Dadurch ist eine Funktion gekapselt vom Rest des Programms.

Doch wie benutzen wir jetzt diese Funktion? Hier ein Beispiel:

<?php
   function summe($zahl1, $zahl2) {
      return $zahl1 + $zahl2;
   }
   echo summe(5 , 6);
   echo summe(7, 89);
   echo summe(7.656, 785.89);
   echo summe(summe(4,5),summe(4,6));
?> 

Optionale Parameter

Bei Funktionen in PHP können Parameter optional sein und wenn sie nicht übergeben werden, so wird der Standardwert verwenden.

Obligatorische Parameter müssen immer am Anfang der Funktionsdefinition (aus Signatur genannt stehen). Optionale Parameter stehen immer am Ende.

Das folgende Beispiel zeigt die Ausgabe mit dem optionalen Parameter $anrede:


<?php
   function sagHallo($name, $anrede='Herr') {
      return 'Hallo '.$anrede.' '.$name;
  }

   echo sagHallo('Müller');
   echo sagHallo('Meyer','Frau');
?>

Rekursion

Als Rekursion bezeichnet man Funktionen die sich selber aufrufen.
Mit Rekursion kann man

Navigation