Valores Padrão de Parâmetros
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 é fornecido. Os valores padrão dos parâmetros permitem definir qual deve ser o valor de um parâmetro caso quem chama a função não o especifique.
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 gera:
Hello, Alice!
Hello, Guest!Quando você chama greet("Alice"), o argumento substitui o valor padrão. Quando você chama greet() sem argumento, o PHP usa "Guest" em seu lugar.
Você pode combinar parâmetros obrigatórios e opcionais, mas os parâmetros com valores padrão devem vir depois dos obrigatórios:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>Isso produz:
Alice is a member
Bob is a adminO primeiro parâmetro $name é obrigatório, enquanto $role assume 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 sempre forneçam todos os argumentos.
Desafio
FácilLeia duas linhas de entrada:
- Um nome de produto (por exemplo,
Laptop) - Uma quantidade (por exemplo,
5). Essa entrada pode estar vazia
Crie uma função chamada formatOrder que aceite dois parâmetros: $product (obrigatório) e $quantity (opcional, com valor padrão de 1). A função deve retornar uma string no seguinte formato:
Order: [quantity]x [product]Se a entrada da quantidade estiver vazia, chame a função apenas com o nome do produto (usando a quantidade padrão). Caso contrário, chame-a com os dois valores.
Imprima o resultado retornado.
Exemplo 1:
Se as entradas forem Laptop e 5, a saída deverá ser:
Order: 5x LaptopExemplo 2:
Se as entradas forem Keyboard e uma linha vazia, a saída deverá ser:
Order: 1x KeyboardExemplo 3:
Se as entradas forem Monitor e 3, a saída deverá ser:
Order: 3x MonitorExperimente você mesmo
<?php
// Ler a 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 adequadamente com base em se quantity está vazio ou não
// Se quantity estiver vazio, 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
4Operadores de Comparação e Lógicos
Operadores de ComparaçãoIgualdade e IdentidadeOperadores Lógicos - Parte 1Operadores Lógicos - Parte 2Revisão - Lógica Simples2Variáveis e Tipos de Dados
NúmerosStrings e AspasBooleanosConvenções de NomenclaturaRevisão - Inicialização de VariáveisVariáveis VaziasConcatenação de StringsObtendo Entrada do UsuárioConversão para Diferentes Tipos5Lógica Condicional
Instrução IfIf - ElseO Operador TernárioOperador de Coalescência NulaInstrução SwitchRecapitulação - Tomando Decisões3Operadores Básicos
Operadores AritméticosOperador MóduloOperador de ExponenciaçãoAtribuição CombinadaIncremento/DecrementoPrecedência de OperadoresRevisão - Cálculos SimplesOperadores de StringPratique por conta própria: Compilador de PHP online