Como definir tipos de retorno de função no PHP
A partir do PHP 7, é possível definir tipos de retorno para funções, garantindo que o valor retornado seja do tipo esperado. Isso melhora a legibilidade do código e evita erros ao tentar usar um valor de tipo inesperado.
Sintaxe para definir tipos de retorno
Para definir o tipo de retorno de uma função, usamos : tipo
após os parênteses:
<?php
function soma(int $a, int $b): int {
return $a + $b;
}
echo soma(5, 3);
?>
Aqui, : int
indica que a função sempre retornará um inteiro.
Definindo tipos de retorno para strings, arrays e booleanos
Podemos especificar outros tipos de retorno:
<?php
function mensagem(): string {
return "Olá, mundo!";
}
function obterLista(): array {
return ["Maçã", "Banana", "Laranja"];
}
function verificarIdade(int $idade): bool {
return $idade >= 18;
}
?>
Cada função acima tem um tipo de retorno claramente definido, tornando seu uso mais previsível.
Usando void
para funções sem retorno
A partir do PHP 7.1, podemos indicar que uma função não retorna valor usando void
:
<?php
function logMensagem(string $mensagem): void {
echo "Log: $mensagem";
}
?>
Aqui, void
indica que a função não retorna nada explicitamente.
Retornos múltiplos com ?
(Nullable Types)
Se uma função puder retornar null
, usamos ?
antes do tipo:
<?php
function buscarUsuario(int $id): ?array {
return ($id === 1) ? ["nome" => "Carlos", "idade" => 30] : null;
}
?>
Isso indica que a função pode retornar um array ou null
, aumentando a flexibilidade.
Por que definir tipos de retorno em funções PHP?
Definir tipos de retorno em funções PHP melhora a confiabilidade do código e facilita a depuração. Quando sabemos exatamente qual tipo de dado esperar, evitamos erros comuns, como tentar somar uma string com um número. Além disso, funções bem tipadas tornam APIs e bibliotecas mais seguras e previsíveis, reduzindo a necessidade de validações adicionais em cada chamada.
Algumas aplicações:
- Garantia de que funções retornem o tipo esperado
- Melhoria da legibilidade e segurança do código
- Facilitação da manutenção e depuração
- Maior previsibilidade ao desenvolver APIs e bibliotecas
Dicas para quem está começando
- Prefira definir tipos de retorno para evitar retornos inesperados.
- Use
void
quando a função não precisar retornar valores. - Utilize
?
antes do tipo quando a função puder retornarnull
. - Se precisar de múltiplos tipos de retorno, considere usar
mixed
(PHP 8) ou lançar exceções. - Funções fortemente tipadas tornam o código mais seguro e previsível.
Contribuições de Rafael Nogueira