Eigene Funktionen in PHP definieren

Erste Schritte: Eigene Funktionen in PHP definieren

Mit Funktionen in PHP kannst du deinen Code modularisieren und wiederverwendbar machen.
Eine Funktion ist ein in sich geschlossener Codeblock, der bestimmte Aufgaben erfüllt.
In diesem Tutorial erfährst du, wie du eigene Funktionen in PHP definierst,
wie du ihnen Parameter übergibst und ggf. einen Rückgabewert erhältst.


1. Warum Funktionen?

Die wichtigsten Vorteile von Funktionen:

  • Wiederverwendbarkeit: Statt denselben Code mehrfach zu schreiben, legst du ihn in einer Funktion ab und rufst diese einfach auf.
  • Struktur & Übersicht: Du teilst dein Skript in logische Blöcke. So ist der Code besser wartbar.
  • Wartbarkeit & Erweiterbarkeit: Ändert sich die Funktionalität, passt du nur den Code in der Funktion an, anstatt überall.

2. Grundsyntax einer Funktion

Eine Funktion definierst du üblicherweise mit dem Schlüsselwort function:

function funktionsName() {
    // Codeblock
}

Der Name der Funktion kann Buchstaben, Zahlen und Unterstriche enthalten,
darf jedoch nicht mit einer Zahl beginnen.
Zudem ist er – im Gegensatz zu Variablen – nicht case-sensitive,
aber gute Praxis ist konsistente Schreibweise (z. B. camelCase).

Einfaches Beispiel

<?php
function sagHallo() {
    echo "Hallo Welt!<br>";
}

// Aufruf der Funktion
sagHallo();  // Gibt "Hallo Welt!" aus
sagHallo();  // Nochmal
?>

Hier wird die Funktion sagHallo() definiert und anschließend
mehrfach aufgerufen. So sparst du Codezeilen und gehst sicher,
dass immer derselbe Text ausgegeben wird.


3. Parameter übergeben

Funktionen werden oft mit Parametern oder Argumenten aufgerufen,
damit sie flexibel auf Daten reagieren können.
Der Parameter wird in runden Klammern definiert.

function sagHalloZu($name) {
    echo "Hallo, $name!<br>";
}

sagHalloZu("Lisa");
sagHalloZu("Max");
  • $name ist der Parameter, den du beim Funktionsaufruf übergibst.
  • Im Aufruf (sagHalloZu(„Lisa“)) wird „Lisa“ an $name gebunden.

3.1 Mehrere Parameter

function addiere($a, $b) {
    echo $a + $b;
}

addiere(3, 4);   // 7
addiere(10, 5);  // 15

Wenn du mehr als einen Parameter hast, trennst du sie mit Komma.

3.2 Default-Parameter (Standardwerte)

Du kannst Parameter mit einem Standardwert versehen. Wenn du beim Funktionsaufruf keinen Wert übergibst,
verwendet PHP den Standard.

function begruessen($name = "Gast") {
    echo "Willkommen, $name!<br>";
}

begruessen();          // Gibt "Willkommen, Gast!" aus
begruessen("Anna");    // "Willkommen, Anna!"

4. Rückgabewerte

Oft soll eine Funktion nicht nur etwas ausgeben, sondern ein Ergebnis zurückliefern.
Dazu nutzt du return.

function multiplikation($x, $y) {
    return $x * $y;
}

$ergebnis = multiplikation(5, 6);
echo $ergebnis; // 30
  • return beendet die Funktion sofort und liefert den Wert zurück.
  • Nach return geschriebener Code wird nicht mehr ausgeführt.

4.1 Mehrere Rückgabepfade

function checkAlter($alter) {
    if ($alter >= 18) {
        return "Volljährig";
    } else {
        return "Minderjährig";
    }
}

echo checkAlter(20); // Volljährig
echo checkAlter(16); // Minderjährig

5. Typdeklaration für Parameter & Rückgaben

Ab PHP 7 kannst du Parameter und Rückgaben typisieren, um sicherzustellen,
dass die Funktion nur bestimmte Datentypen annimmt bzw. zurückgibt:

function addiereZahlen(int $a, int $b): int {
    return $a + $b;
}

echo addiereZahlen(10, 5); // 15
// echo addiereZahlen("3", "4"); // Implizites Casting oder Fehlverhalten je nach declare(strict_types=1)

Mit declare(strict_types=1) (am Anfang der Datei) kann man strikte Typprüfungen aktivieren,
sonst versucht PHP automatische Konvertierungen.


6. Variable Anzahl von Parametern

Manchmal kennst du die Anzahl der Argumente erst zur Laufzeit.
Dafür kannst du den „Splat-Operator“ nutzen:

function summe(...$werte) {
    $ergebnis = 0;
    foreach ($werte as $wert) {
        $ergebnis += $wert;
    }
    return $ergebnis;
}

echo summe(1, 2, 3); // 6
echo summe(5, 10);   // 15

Hier nimmt summe beliebig viele Werte entgegen und fasst sie zu einem Array $werte zusammen.


7. Scope (Gültigkeitsbereich) von Variablen

Variablen, die du innerhalb einer Funktion definierst, gelten nur in dieser Funktion.
Sie sind „lokale“ Variablen. Um auf globale Variablen zuzugreifen, musst du global $variable nutzen
oder besser Parameter übergeben.

$name = "Lisa";

function test() {
    // echo $name; // Fehler, da $name nicht definiert ist in diesem Scope
}

function testGlobal() {
    global $name;
    echo $name; // Jetzt zugreifbar
}

Am besten übergibst du Werte als Parameter, damit dein Code modular bleibt und keine Nebenwirkungen hat.


Fazit

Mit selbst definierten Funktionen in PHP kannst du deinen Code aufteilen,
wiederverwendbar machen und viel Zeit sparen.
Ob du kleine Helfer-Funktionen (z. B. addiere, checkAlter) oder komplexe Routinen schreibst,
Funktionen steigern die Lesbarkeit und Wartbarkeit deines Projekts.
Indem du Parameter, Rückgabewerte und ggf. Typdeklarationen nutzt,
wird dein Code sauber strukturiert und leicht erweiterbar.
Probier unterschiedliche Varianten (Default-Parameter, variadische Funktionen) aus,
um ein Gespür für die Flexibilität von PHP-Funktionen zu bekommen!