Default Parameter Values
Fait partie de la section Fondamentaux du Journey PHP de Coddy — leçon 64 sur 71.
Parfois, vous voulez qu'un paramètre de fonction ait une valeur de repli lorsque aucun argument n'est fourni. Les valeurs par défaut des paramètres vous permettent de définir ce qu'un paramètre doit être si l'appelant ne le spécifie pas.
Pour définir une valeur par défaut, assignez-la directement dans la déclaration de la fonction en utilisant l'opérateur = :
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice");
greet();
?>Cela produit en sortie :
Hello, Alice!
Hello, Guest!Lorsque vous appelez greet("Alice"), l'argument remplace la valeur par défaut. Lorsque vous appelez greet() sans argument, PHP utilise "Guest" à la place.
Vous pouvez mélanger des paramètres requis et optionnels, mais les paramètres avec des valeurs par défaut doivent venir après les requis :
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>Cela produit :
Alice is a member
Bob is a adminLe premier paramètre $name est requis, tandis que $role prend par défaut la valeur "member" s'il n'est pas fourni. Ce modèle rend vos fonctions plus flexibles sans obliger les appelants à fournir toujours tous les arguments.
Défi
FacileLisez deux lignes d'entrée :
- Un nom de produit (par exemple,
Laptop) - Une quantité (par exemple,
5) — cette entrée peut être vide
Créez une fonction appelée formatOrder qui accepte deux paramètres : $product (obligatoire) et $quantity (optionnel, par défaut 1). La fonction doit retourner une chaîne dans le format suivant :
Order: [quantity]x [product]Si l'entrée de quantité est vide, appelez la fonction avec seulement le nom du produit (en utilisant la quantité par défaut). Sinon, appelez-la avec les deux valeurs.
Affichez le résultat retourné.
Exemple 1 :
Si les entrées sont Laptop et 5, la sortie doit être :
Order: 5x LaptopExemple 2 :
Si les entrées sont Keyboard et une ligne vide, la sortie doit être :
Order: 1x KeyboardExemple 3 :
Si les entrées sont Monitor et 3, la sortie doit être :
Order: 3x MonitorAide-mémoire
Les valeurs par défaut des paramètres permettent de définir des valeurs de repli pour les paramètres de fonction lorsque aucun argument n'est fourni.
Pour définir une valeur par défaut, assignez-la dans la déclaration de la fonction en utilisant = :
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice"); // Hello, Alice!
greet(); // Hello, Guest!
?>Lorsque vous mélangez des paramètres requis et optionnels, les paramètres avec des valeurs par défaut doivent venir après les paramètres requis :
<?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
?>Essayez vous-même
<?php
// Lire l'entrée
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));
// TODO: Créer la fonction formatOrder avec $product (requis) et $quantity (optionnel, par défaut 1)
// La fonction doit retourner une chaîne au format : "Order: [quantity]x [product]"
// TODO: Appeler la fonction de manière appropriée selon que quantity est vide ou non
// Si quantity est vide, appeler avec seulement product (utiliser la valeur par défaut)
// Sinon, appeler avec à la fois product et quantity
// Afficher le résultat
echo $result;
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
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