Menu
Coddy logo textTech

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 admin

O 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.

challenge icon

Desafio

Fácil

Leia duas linhas de entrada:

  1. Um nome de produto (por exemplo, Laptop)
  2. 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 Laptop

Exemplo 2:

Se as entradas forem Keyboard e uma linha vazia, a saída deverá ser:

Order: 1x Keyboard

Exemplo 3:

Se as entradas forem Monitor e 3, a saída deverá ser:

Order: 3x Monitor

Experimente 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;
?>
quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Compilador de PHP online