Menu
Coddy logo textTech

Default Parameter Values

Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 64 von 71.

Manchmal möchten Sie, dass ein Funktionsparameter einen Fallback-Wert hat, wenn kein Argument angegeben wird. Standard-Parameterwerte ermöglichen es Ihnen, festzulegen, was ein Parameter sein soll, wenn der Aufrufer ihn nicht spezifiziert.

Um einen Standardwert festzulegen, weisen Sie ihn direkt in der Funktionsdeklaration mit dem =-Operator zu:

<?php
function greet($name = "Guest") {
    echo "Hello, $name!\n";
}

greet("Alice");
greet();
?>

Dies gibt aus:

Hello, Alice!
Hello, Guest!

Wenn Sie greet("Alice") aufrufen, überschreibt das Argument den Standardwert. Wenn Sie greet() ohne Argument aufrufen, verwendet PHP "Guest" stattdessen.

Sie können erforderliche und optionale Parameter mischen, aber Parameter mit Standardwerten müssen nach den erforderlichen kommen:

<?php
function createUser($name, $role = "member") {
    return "$name is a $role";
}

echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>

Dies gibt aus:

Alice is a member
Bob is a admin

Der erste Parameter $name ist erforderlich, während $role standardmäßig auf "member" gesetzt wird, wenn er nicht angegeben ist. Dieses Muster macht Ihre Funktionen flexibler, ohne dass Aufrufer immer jedes Argument angeben müssen.

challenge icon

Aufgabe

Einfach

Lesen Sie zwei Zeilen Eingabe:

  1. Ein Produktname (z. B. Laptop)
  2. Eine Menge (z. B. 5) — diese Eingabe kann leer sein

Erstellen Sie eine Funktion namens formatOrder, die zwei Parameter akzeptiert: $product (erforderlich) und $quantity (optional, Standardwert 1). Die Funktion sollte eine Zeichenkette im folgenden Format zurückgeben:

Order: [quantity]x [product]

Wenn die Mengen-Eingabe leer ist, rufen Sie die Funktion nur mit dem Produktnamen auf (unter Verwendung der Standardmenge). Rufen Sie sie andernfalls mit beiden Werten auf.

Geben Sie das zurückgegebene Ergebnis aus.

Beispiel 1:

Wenn die Eingaben Laptop und 5 sind, sollte die Ausgabe sein:

Order: 5x Laptop

Beispiel 2:

Wenn die Eingaben Keyboard und eine leere Zeile sind, sollte die Ausgabe sein:

Order: 1x Keyboard

Beispiel 3:

Wenn die Eingaben Monitor und 3 sind, sollte die Ausgabe sein:

Order: 3x Monitor

Spickzettel

Standardwerte für Parameter ermöglichen es, Ersatzwerten für Funktionsparameter festzulegen, wenn kein Argument angegeben wird.

Um einen Standardwert festzulegen, weisen Sie ihn in der Funktionsdeklaration mit = zu:

<?php
function greet($name = "Guest") {
    echo "Hello, $name!\n";
}

greet("Alice");  // Hello, Alice!
greet();         // Hello, Guest!
?>

Beim Mischen von erforderlichen und optionalen Parametern müssen Parameter mit Standardwerten nach den erforderlichen stehen:

<?php
function createUser($name, $role = "member") {
    return "$name is a $role";
}

echo createUser("Alice");           // Alice is a member
echo createUser("Bob", "admin");    // Bob is a admin
?>

Probier es selbst

<?php
// Eingabe lesen
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));

// TODO: Erstelle die formatOrder-Funktion mit $product (erforderlich) und $quantity (optional, Standardwert 1)
// Die Funktion sollte einen String im Format zurückgeben: "Order: [quantity]x [product]"


// TODO: Rufe die Funktion passend auf, je nachdem, ob quantity leer ist oder nicht
// Wenn quantity leer ist, rufe nur mit product auf (Standardwert verwenden)
// Andernfalls rufe mit beiden product und quantity auf


// Gib das Ergebnis aus
echo $result;
?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen