Menu
Coddy logo textTech

Standardwerte für Parameter

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

Manchmal möchtest du, dass ein Funktionsparameter einen Ersatzwert hat, wenn kein Argument übergeben wird. Mit Standardwerten für Parameter kannst du festlegen, welchen Wert ein Parameter haben soll, wenn der Aufrufer keinen angibt.

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

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

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

Dies gibt Folgendes aus:

Hello, Alice!
Hello, Guest!

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

Du kannst erforderliche und optionale Parameter mischen, aber Parameter mit Standardwerten müssen nach den erforderlichen Parametern stehen:

<?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 wird. Dieses Muster macht deine Funktionen flexibler, ohne dass Aufrufer immer jedes Argument angeben müssen.

challenge icon

Aufgabe

Einfach

Lies zwei Eingabezeilen ein:

  1. Einen Produktnamen (z. B. Laptop)
  2. Eine Menge (z. B. 5). Diese Eingabe kann leer sein

Erstelle eine Funktion namens formatOrder, die zwei Parameter akzeptiert: $product (erforderlich) und $quantity (optional, standardmäßig 1). Die Funktion soll eine Zeichenkette im folgenden Format zurückgeben:

Order: [quantity]x [product]

Wenn die Mengeneingabe leer ist, rufe die Funktion nur mit dem Produktnamen auf (wobei die Standardmenge verwendet wird). Andernfalls rufe sie mit beiden Werten auf.

Gib das zurückgegebene Ergebnis aus.

Beispiel 1:

Wenn die Eingaben Laptop und 5 lauten, sollte die Ausgabe wie folgt aussehen:

Order: 5x Laptop

Beispiel 2:

Wenn die Eingaben Keyboard und eine leere Zeile lauten, sollte die Ausgabe wie folgt aussehen:

Order: 1x Keyboard

Beispiel 3:

Wenn die Eingaben Monitor und 3 lauten, sollte die Ausgabe wie folgt aussehen:

Order: 3x Monitor

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 entsprechend auf, je nachdem ob quantity leer ist oder nicht
// Wenn quantity leer ist, rufe nur mit product auf (Standardwert verwenden)
// Andernfalls rufe mit product und quantity auf


// Das Ergebnis ausgeben
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

Übe selbstständig: Online-PHP-Compiler