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.
Desafio
FácilLeia duas linhas de entrada:
- Um preço como um número decimal (por exemplo,
49.99) - 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:
$pricecomofloat$discountPercentcomoint
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:
75Exemplo 2:
Se as entradas forem 49.99 e 10, a saída deverá ser:
44.991Exemplo 3:
Se as entradas forem 200.50 e 50, a saída deverá ser:
100.25Experimente 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);
?>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