Eigene Funktionen in PHP erstellen

In diesem PHP Tutorial zu Funktionen in PHP lernen wir Funktionen, Parameter, Rückgabewerte und rekursive Funktionen kennen.Tags: | | | | | | | | | | |
Noch nicht sicher genug im Webdesign? Lass dir in unseren Programmier-Kursen in Kirchdorf oder unserer Wichtel-Webdesign-Agentur in Pettenbach weiterhelfen!

Worum geht´s?

In diesem PHP Tutorial werden wir gemeinsam einige erste Funktionen in PHP erstellen. Wir werden uns mit Parametern und Rückgabewerten von Funktionen beschäftigen, und wie wir unsere Hilfsfunktionen in eine eigene .php-Datei auslagern und wieder inkludieren.

1. Was sind Funktionen in PHP?

Funktionen ermöglichen es dir, einzelne Bestandteile deines PHP-Skriptes, die du immer wieder verwendest, mit einem eigenen Namen zu versehen.

Anstatt also den gleichen (oder sehr ähnlichen) Code mehrmals in deinem PHP-Skript zu haben, schreibst du ihn nur ein einziges Mal, gibst ihm einen bestimmten Namen und setzt dort, wo du diesen Code verwenden willst, einen Verweis (auch „Funktionsaufruf“ genannt) auf die entspechende Funktion.

Dies ermöglicht es dir, deine PHP-Skripte stark zu vereinfachen und übersichtlicher zu gestalten.

Außerdem helfen Funktionen in PHP dir auch, die Wiederverwendbarkeit deines Codes zu erhöhen.

2. Wie Funktionen in PHP funktionieren

Grundsätzlich sind Funktionen in PHP immer nach dem gleichen Schema aufgebaut:

function testFunction() {
    echo "test!";
}
function testFunction2() {
    $a = 3;
    echo $a;
}

Hier nochmal der grundsätzliche Aufbau einer Funktion in PHP aufgelistet:

  • Das „Zauberwort“ bei Funktionen in PHP heißt „function
  • gefolgt vom Namen der Funktion,
  • zwei runden Klammern ()
  • einer geschwungenen Klammer auf {
  • dem eigentlichen Inhalt der Funktion (irgendwelche Berechnungen etc.)
  • und einer geschwungenen Klammer zu }

Hier noch ein Beispiel einer einfachen Funktion, die uns einen Email-Link erzeugt:

function emailLink() {
    echo "<a href='mailto:niklas@relativemeister.com'>Email me</a>";
}

Immer dort, wo ein Email-Link erwünscht ist, kann nun auch

emailLink();

geschrieben werden.

2.1 Funktionen in PHP mit Parametern individualisieren

Unsere emailLink()-Funktion von vorhin ist zwar ganz nett, aber noch nicht sonderlich beeindruckend.

Wäre es nicht fein, wenn sie auch verschiedene Email-Adressen ausgeben könnte?

Damit das funktioniert, müssen wir Parameter einbauen:

function emailLink($to, $name) {
    echo "<a href='mailto:".$to."'>Email ".$name."</a>";
}

Beim Aufrufen der Funktion müssen wir nun innerhalb der ()-Klammern die Email-Adresse mitgeben, die eingefügt werden soll, und außerdem den Namen des Empfängers:

mailLink("niklas@relativemeister.com", "Niklas");
mailLink("elisabeth@relativemeister.com", "Elisabeth");

Die beiden Funktionsaufrufen erzeugen uns nun zwei verschiedene HTML Links, die beim Draufklicken an zwei verschiedene Email-Adressen schicken können.

Die Parameter der Funktion können dabei grundsätzlich jeden Datentyp annehmen und müssen nicht vordefiniert werden.

Dies heißt im Umkehrschluss aber auch, dass du innerhalb der Funktion damit rechnen musst, dass das Programm, das die Funktion aufruft, alles mögliche schicken könnte – also z.B. einen Text, wo eigentlich eine Zahl kommen sollte.

2.2 Parameter mit vordefinierten Werten füllen

Es ist auch möglich, einer Funktion beim Aufrufen unterschiedlich viele Werte mitzugeben.

Dies kannst du ermöglichen, in dem du der Funktion im Vorfeld sogenannte Standard-Werte definierst.

Diese bedeuten so viel wie „Wenn hier nichts daherkommt, nimm diesen Wert“.

Du legst sie mit Hilfe des =-Symbols fest:

function emailLink($to = "niklas@relativemeister.com", $name = "Niklas") {
    echo "<a href='mailto:".$to."'>Email ".$name."</a>";
}

Diese Funktion lässt sich nun auf 3 Arten aufrufen:

emailLink("elisabeth@relativemeister.com", "Elisabeth");
emailLink("elisabeth@relativemeister.com");
emailLink();

Je weniger Paramter mitgegeben werden, desto mehr werden durch die Standard-Werte ersetzt.

2.3 Rückgabewerte von Funktionen in PHP

Funktionen in PHP können auch Werte zurückgeben:

function add($a, $b) {
    return $a + $b;
}

Du verwendest eine solche Funktion dann z.B. so:

$ergebnis = add(3, 5);

oder auch so:

echo "Die Gesamtsumme ist ".add(4, $c);

Willst du mehr als einen Wert auf einmal zurückgeben, kannst du dies mit Hilfe von Arrays lösen:

function add($a, $b) {
    return array($a + $b, 10);
}

Das obige Beispiel macht für sich betrachtet nicht allzu viel Sinn – mir geht es rein darum zu zeigen, dass auch mehrere Rückgabewerte auf einmal möglich sind.

2.4 Rekursive Funktionen in PHP

Eine Besonderheit der Verwendung von Funktionen in PHP (oder jeder anderen Programmiersprache) ist die sogenannte Rekursion.

Eine rekursive Funktion ist eine, die sich innerhalb der Funktion selbst aufruft.

Ein klassisches Anwendungsbeispiel wäre eine Funktion, die alle Dateien in einem Ordner anzeigt, und dort, wo sie einen Ordner entdeckt, in den Ordner geht und sich darin selbst erneut aufruft. So geht die Funktion auch alle Unterordner durch.

Hier noch ein Beispiel einer Funktion zur Ausgabe der Fibonacci-Folge in PHP (Fibonacci-Folge heißt, dass von 1 und 1 begonnen die jeweils nächste Zahl immer die Summe der beiden vorherigen ist):

function fibonacci($a, $b, $target) {
    if ($b < $target) {
        echo "<br>".$b;
        $b = fibonacci($b, ($a + $b), $target);
        
    }
    return $b;
}

fibonacci(1, 1, 150);

Und hier das Ergebnis (Fibonacci-Folge bis 150):

1
2
3
5
8
13
21
34
55
89
144

Rekursive Funktionen sind in den meisten Fällen komplizierter auszudenken als „normale“ Funktionen. Oft kannst du sie vermeiden und eine Lösung finden, die nur mit Schleifen auskommt. Meist ist das dann sinnvoller.

Aber es gibt auch Fälle, wo die Rekursion tatsächlich Vorteile bringt. Deswegen sind sie hier mit aufgelistet, auch wenn sie ohne viel Übung für die meisten schwer verständlich sind.

3. Funktionen in PHP in eine eigene .php-Datei auslagern

Zwecks besserer Übersicht kann es Sinn machen, einige oder alle Funktionen in eine eigene .php-Datei „auszulagern“.

Nehmen wir an, wir erstellen dafür einen „werkzeuge.php“.

In diese packen wir nun alle unsere selbstgemachten Funktionen.

Wenn wir sie nun in einer anderen .php-Datei verwenden wollen, funktioniert das nicht mehr.

Damit es wieder funktioniert, müssen wir unsere werkzeuge.php-Datei einbinden.

Und das geht so:

require_once("werkzeuge.php");

Diesen Aufruf packst du am besten ganz oben in die .php-Datei, in der du die Funktionen aus unserer werkezuge.php verwenden willst.

Es gibt auch eine Funktion require() – warum also require_once()?

Die Funktion require_once() überprüft, ob die Datei, die eingebunden werden soll, schon einmal geladen wurde. Sie verhindert also, dass eine Datei überflüssigerweise 2x eingebunden wird.

Das kann beispielsweise vorkommen, wenn du ein Content Management System wie WordPress mit mehreren Plugins nutzt, die wiederum ähnliche Bibliotheken nutzen.

4. Weitere klassische Anwendungen von Funktionen in PHP

Eine der einfachsten und mächtigsten Anwendungsgebiete von Funktionen in PHP ist das simple Auslagern von sich immer wieder wiederholenden Programmbestandteilen. Die besten Beispiele dafür sind oft Header und Footer einer Website.

Anstatt also den gleichen Code für diese beiden Bereiche mehrere Male in jede einzelne HTML-Datei zu schreiben, schreibst du dir zwei PHP-Funktionen für diese Bereiche, die du dann nur noch auf jeder Unterseite aufrufst.

Wenn dieses PHP Tutorial dazu führt, dass du zumindest diese eine Erleichterung einsetzt, ist es schon mal nicht schlecht.

Aber Funktionen sind noch viel, viel mächtiger. Wie mächtig sie wirklich sind, wirst du mit der Zeit – hoffentlich – selbst feststellen.

Aber jetzt machen wir an dieser Stelle jetzt mal einen Stopp.

Viel Freude einstweilen noch mit Funktionen in PHP 🙂

Diskussion zum Tutorial

Du bist aus Oberösterreich? Dann nütze doch auch unsere flexiblen Programmier-Kurse in Kirchdorf - oder gib deine Website gerne in die guten Hände unserer erfahrenen Wichtel-Webdesign-Agentur.