Menü:

Tutorials / Definieren und Benutzen von Funktionen

In diesem Tutorial wird erklärt, wie Sie einfache Funktionen definieren- und diese nutzen können.

Was sind "Funktionen" in der Programmierung eigentlich?

Eine Funktion ist in der Programmierung in der Regel eine Art Unterprogramm bzw. Modul. Etwas, was einen bestimmten Zweck erfüllt und an mehreren Stellen im Code aufgerufen werden kann. Es dient auch oft zur Strukturierung eines Skriptes.

Wie werden Funktionen definiert?

In PHP wird eine Funktion mit dem Schlüsselwort "function" initialisiert. Es folgt der Funktionsname und in folgenden Klammern kommen die Argumente welche der Funktion übergeben werden können. Mit den Argumenten werden wird sich das Tutorial jedoch später noch befassen. In dem folgenden Beispiel wird erst einmal eine einfache Funktion definiert.

<?php
// Schlüsselwort "function" -> Definition einer Funktion mit dem Namen addition
// In diesem Beispiel wird sie noch nicht rechnen können, dies wird in den folgenden Beispielen realisiert
function addition() {
    
// Einfache Ausgabe innerhalb der Funktion
    
echo "Hier steht, was die Funktion tun soll";    
}
?>
Beispiel aufrufen

Wie Sie sehen, sehen Sie nichts. Das liegt ganz simpel daran, dass sie Funktion noch nicht aufgerufen wurde. Dies geschieht ganz einfach mit dem Funktionsnamen, ohne das Schlüsselwort function.

<?php
// Schlüsselwort "function" -> Definition einer Funktion mit dem Namen addition
// In diesem Beispiel wird sie noch nicht rechnen können, dies wird in den folgenden Beispielen realisiert
function addition() {
    
// Einfache Ausgabe innerhalb der Funktion
    
echo "Hier steht, was die Funktion tun soll";    
}

// Die definierte Funktion aufrufen
addition();
?>
Beispiel aufrufen

Nun gibt das Skript ganz einfach das aus, was innerhalb der Funktion, also zwischen den geschweiften Klammern steht. Nun ist es aber so, dass man oft die Ausgabe einer Funktion lieber in einer Variable zwischenspeichert und für weitere Zwecke verwendet und vielleicht später dann erst ausgibt. In diesem Fall ist echo nicht für die Ausgabe des Funktionswertes geeignet. Dafür wird das Schlüsselwort return genutzt. Zum besseren Verständnis im Folgenden ein kleines Beispiel in welchem auch gleich eine simple Rechnung durchgeführt wird.

<?php
// Schlüsselwort "function" -> Definition einer Funktion mit dem Namen addition
function addition() {
    
// Erstellen einer Variable mit dem Ergebnis von 5+5 also 10
    
$ergebnis 5+5;

    
// Rückgabe des Funktionswertes, also der Variable $ergebnis
    
return $ergebnis;
}

// Den Funktionswert der definierten Version in einer Variable speichern
$funktionswert addition();

// Den Inhalt der Variable innerhalb eines echos Ausgeben
echo "5+5 = $funktionswert !";
?>
Beispiel aufrufen

Nun haben Sie gelernt, wie man Funktionen definiert und den Funktionswert zurück liefert. Derzeit konnte gab eine Funktion jedoch immer nur ein und den selben Funktionswert zurück. Es gab keine Möglichkeit diesen zu verändert etwa durch die Angabe eines Parameters, also der Zuweisung einer Eigenschaft.

Die Eigenschaften die eine Funktion besitzt können zwischen den beiden Klammern hinter der Definition der Funktion verzeichnet werden. In unserem Beispiel soll es möglich sein, zwei Zahlen anzugeben welche dann addiert werden sollen. Dafür müssen also zwei Variablen zwischen die Klammern geschrieben werden. Diese werden mit einem Komma getrennt und sind privat. Das heißt, dass die Variablen nicht außerhalb der Funktion ausgelesen werden können. Sie sind vollständig unabhängig von den Variablen Zuweisungen außerhalb der Funktion. In dem folgenden Beispiel heißen die Variablen $zahl1 und $zahl2

<?php
// Schlüsselwort "function" -> Definition einer Funktion mit dem Namen addition
function addition($zahl1$zahl2) {
    
// Erstellen einer Variable mit dem Ergebnis der Addition der Variablen $zahl1 und $zahl2
    
$ergebnis $zahl1 $zahl2;

    
// Rückgabe des Funktionswertes, also der Variable $ergebnis
    
return $ergebnis;
}

// Den Funktionswert der definierten Version in einer Variable speichern
// Hier werden nun die zu nutzenden Werte für $zahl1 und $zahl2 Ã¼bergeben. Dies geschieht wie bei der Funktionsdefinition innerhalb der Klammern
// Wir verwenden hier wieder 5 und 5
$funktionswert addition(5,5);

// Den Inhalt der Variable innerhalb eines echos Ausgeben
// Nun versuchen wir die selbe Ausgabe auch mit dieser Variante zu erreichen
// Instinktiv denken Sie vermutlich an die Nutzung der Variablen $zahl1 und $zahl2
echo "$zahl1 + $zahl2 = $funktionswert !";
?>
Beispiel aufrufen

Wie Sie sehen funktioniert die Übergabe der beiden Zahlen und der Funktionswert wird auch problemlos ausgegeben. Jedoch sind die Variablen $zahl1 und $zahl2 wie schon angesprochen private Variablen und können Außerhalb der Funktion nicht genutzt werden. Eine Lösung wäre, die Variablen auch außerhalb der Funktion zu definieren und nur noch in die Funktion einzusetzen. Dies zeigt das folgende Beispiel.

<?php
// Schlüsselwort "function" -> Definition einer Funktion mit dem Namen addition
function addition($zahl1$zahl2) {
    
// Erstellen einer Variable mit dem Ergebnis der Addition der Variablen $zahl1 und $zahl2
    
$ergebnis $zahl1 $zahl2;

    
// Rückgabe des Funktionswertes, also der Variable $ergebnis
    
return $ergebnis;
}

// Hier werden die zu nutzenden Zahlen definiert. Wir verwenden zum besseren Verständnis neue Variablennamen
$z1 5;
$z2 5;

// Den Funktionswert der definierten Version in einer Variable speichern
// Hier werden nun die zu nutzenden Werte für $zahl1 und $zahl2 Ã¼bergeben - Dies sind die neu definierten Variablen $z1 und $z2
$funktionswert addition($z1$z2);

// Den Inhalt der Variable innerhalb eines echos Ausgeben
// In diesem Beispiel verwenden wir nun die globalen Variablen $z1 und $z2 für die Ausgabe der Zahlen
echo "$z1 + $z2 = $funktionswert !";
?>
Beispiel aufrufen

Nun ist das gewünschte Ziel endlich erreicht. Im folgenden möchten wir Ihnen zeigen, welchen Vorteil die Verwendung von Variablen innerhalb der Funktionen hat. So können Sie jetzt beliebige Zahlen addieren was dieses Beispiel verdeutlicht.

<?php
// Schlüsselwort "function" -> Definition einer Funktion mit dem Namen addition
function addition($zahl1$zahl2) {
    
// Erstellen einer Variable mit dem Ergebnis der Addition der Variablen $zahl1 und $zahl2
    
$ergebnis $zahl1 $zahl2;

    
// Rückgabe des Funktionswertes, also der Variable $ergebnis
    
return $ergebnis;
}

// Verschiedene Werte in die Funktion einsetzen
// Hier wird auf den Umweg Ã¼ber eine Variable verzichtet und alles jeweils in ein echo zusammengefasst
// Der Text, also String, innerhalb der echos wird Ã¼ber einen . mit dem Funktionswert von addition(zahl1, zahl2) verkettet

// Einsetzen von 5 und 5
echo "5 + 5 = " addition(5,5) . "<br />";

// Einsetzen von 2 und 3
echo "2 + 3 = " addition(2,3) . "<br />";

// Einsetzen von -7 und -9
echo "-7 + (-9) = " addition(-7,-9) . "<br />";

// Einsetzen von 3,24 und 2,23
// Achten Sie darauf, dass nach englischer Schreibweise anstatt dem im deutschen Raum Ã¼blichen , ein Punkt verwendet wird
echo "3,24 + 2,23 = " addition(3.242.23);
?>
Beispiel aufrufen

... Hier noch eine letze Möglichkeit mit func_get_args() ....