Start · Sprachen · PHP · Kapitel · Funktionen
// Kapitel · PHP

Funktionen

Klassische Funktionen, Arrow-Functions, Named Arguments und Typ-Deklarationen — alles was du für saubere APIs brauchst.

Grundform mit Typ-Deklaration

function berechneMwst(float $netto, float $satz = 0.19): float {
    return $netto * $satz;
}

echo berechneMwst(100.00);           // 19
echo berechneMwst(100.00, 0.07);     // 7

Named Arguments (PHP 8.0+)

Erlauben Argumente per Namen zu übergeben. Perfekt bei Funktionen mit vielen optionalen Parametern:

function createUser(
    string $email,
    string $name,
    bool $sendWelcome = true,
    ?string $referral = null,
    string $locale = 'de',
): User {
    // ...
}

// Statt Reihenfolge zu merken:
createUser(
    email: 'anna@example.com',
    name: 'Anna',
    locale: 'en',
    sendWelcome: false,
);

Variadic Functions (...$args)

function summe(int ...$zahlen): int {
    return array_sum($zahlen);
}

echo summe(1, 2, 3, 4);   // 10

// Unpacking beim Aufruf:
$werte = [1, 2, 3];
echo summe(...$werte);    // 6

Arrow-Functions (PHP 7.4+)

Kurz-Syntax für einzeilige Callbacks. Der äußere Scope ist automatisch verfügbar (kein use()):

$faktor = 1.19;

$brutto = array_map(fn(float $netto) => $netto * $faktor, $preise);

// Klassische Closure zum Vergleich:
$brutto = array_map(
    function (float $netto) use ($faktor) {
        return $netto * $faktor;
    },
    $preise
);

Union-, Nullable- und Intersection-Types

function findUser(int|string $identifier): ?User {
    // Akzeptiert int ODER string, gibt User oder null zurück
}

// Intersection (PHP 8.1+): Muss beide Interfaces implementieren
function process(Countable&Iterator $items): void { ... }