Menu
CoddyTech

Declarações de Tipo de Retorno

Parte da seção Fundamentos do Journey de PHP da Coddy. Lição 66 de 71.

Assim como você pode declarar tipos para parâmetros, também pode especificar qual tipo uma função deve retornar. As declarações de tipo de retorno informam exatamente ao PHP que tipo de valor sua função enviará de volta, ajudando a detectar erros quando uma função acidentalmente retorna o tipo errado.

Para adicionar um tipo de retorno, coloque dois-pontos seguidos pelo tipo após o parêntese de fechamento da lista de parâmetros:

<?php
function add(int $a, int $b): int {
    return $a + $b;
}

echo add(5, 3);
?>

Isso produz 8. O : int após os parênteses declara que essa função deve retornar um inteiro. Se você tentasse retornar uma string em vez disso, o PHP produziria um erro.

Você pode usar os mesmos tipos que nas declarações de parâmetros: int, float, string, bool e array. Também existe um tipo especial chamado void para funções que não retornam nada:

<?php
function sayHello(string $name): void {
    echo "Hello, $name!\n";
}

sayHello("Alice");
?>

Uma função void não pode ter uma instrução return com um valor. Combinar tipos de parâmetros com tipos de retorno torna suas funções autoexplicativas: qualquer pessoa que leia o código sabe imediatamente o que entra e o que sai.

challenge icon

Desafio

Fácil

Leia duas linhas de entrada:

  1. Um preço como um número decimal (por exemplo, 49.99)
  2. Uma porcentagem de desconto como um número inteiro (por exemplo, 20)

Crie uma função chamada calculateFinalPrice que aceite dois parâmetros com declarações de tipo:

  • $price como float
  • $discountPercent como int

A função deve ter uma declaração de tipo de retorno float e deve retornar o preço final após aplicar o desconto.

Chame a função com os valores de entrada e imprima o resultado retornado.

Exemplo 1:

Se as entradas forem 100.00 e 25, a saída deverá ser:

75

Exemplo 2:

Se as entradas forem 49.99 e 10, a saída deverá ser:

44.991

Exemplo 3:

Se as entradas forem 200.50 e 50, a saída deverá ser:

100.25

Experimente você mesmo

<?php
// Ler entrada
$price = floatval(fgets(STDIN));
$discountPercent = intval(fgets(STDIN));

// TODO: Crie uma função chamada calculateFinalPrice com:
// - Parâmetro $price com declaração de tipo float
// - Parâmetro $discountPercent com declaração de tipo int
// - Declaração de tipo de retorno float
// A função deve retornar o preço final após aplicar o desconto


// Chame a função e imprima o resultado
echo calculateFinalPrice($price, $discountPercent);
?>
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