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 adminDer 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.
Aufgabe
EinfachLesen Sie zwei Zeilen Eingabe:
- Ein Produktname (z. B.
Laptop) - 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 LaptopBeispiel 2:
Wenn die Eingaben Keyboard und eine leere Zeile sind, sollte die Ausgabe sein:
Order: 1x KeyboardBeispiel 3:
Wenn die Eingaben Monitor und 3 sind, sollte die Ausgabe sein:
Order: 3x MonitorSpickzettel
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;
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators