Default Parameter Values
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 64 de 71.
Às vezes, você quer que um parâmetro de função tenha um valor de fallback quando nenhum argumento for fornecido. Valores de parâmetro padrão permitem que você defina o que um parâmetro deve ser se o chamador não o especificar.
Para definir um valor padrão, atribua-o diretamente na declaração da função usando o = operador:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice");
greet();
?>Isso produz:
Hello, Alice!
Hello, Guest!Quando você chama greet("Alice"), o argumento sobrescreve o padrão. Quando você chama greet() sem argumento, o PHP usa "Guest" em vez disso.
Você pode misturar parâmetros obrigatórios e opcionais, mas os parâmetros com valores padrão devem vir após os obrigatórios:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>Isso produz a saída:
Alice is a member
Bob is a adminO primeiro parâmetro $name é obrigatório, enquanto $role tem o valor padrão "member" se não for fornecido. Esse padrão torna suas funções mais flexíveis sem exigir que os chamadores forneçam sempre todos os argumentos.
Desafio
FácilLeia duas linhas de entrada:
- Um nome de produto (ex.:
Laptop) - Uma quantidade (ex.:
5) — esta entrada pode estar vazia
Crie uma função chamada formatOrder que aceita dois parâmetros: $product (obrigatório) e $quantity (opcional, padrão para 1). A função deve retornar uma string no seguinte formato:
Order: [quantity]x [product]Se a entrada de quantidade estiver vazia, chame a função apenas com o nome do produto (usando a quantidade padrão). Caso contrário, chame com ambos os valores.
Imprima o resultado retornado.
Exemplo 1:
Se as entradas forem Laptop e 5, a saída deve ser:
Order: 5x LaptopExemplo 2:
Se as entradas forem Keyboard e uma linha vazia, a saída deve ser:
Order: 1x KeyboardExemplo 3:
Se as entradas forem Monitor e 3, a saída deve ser:
Order: 3x MonitorFolha de consulta
Os valores de parâmetro padrão permitem que você defina valores de reserva para parâmetros de função quando nenhum argumento é fornecido.
Para definir um valor padrão, atribua-o na declaração da função usando =:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice"); // Hello, Alice!
greet(); // Hello, Guest!
?>Quando misturar parâmetros obrigatórios e opcionais, os parâmetros com valores padrão devem vir após os obrigatórios:
<?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
?>Experimente você mesmo
<?php
// Ler entrada
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));
// TODO: Crie a função formatOrder com $product (obrigatório) e $quantity (opcional, padrão 1)
// A função deve retornar uma string no formato: "Order: [quantity]x [product]"
// TODO: Chame a função de forma apropriada com base se quantity está vazia ou não
// Se quantity estiver vazia, chame apenas com product (use o padrão)
// Caso contrário, chame com product e quantity
// Imprimir o resultado
echo $result;
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
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