Nesta aula aprenderemos como definir o tipo dos parâmetros de uma função, bem como as vantagens na utilização desse conceito implementado na versão 7 do PHP. |
INTRODUÇÃO
O PHP é uma linguagem dinamicamente tipada, ou seja, não definimos o tipo de cada variável no momento de sua declaração. Isso aumenta a produtividade, porém, acaba ocasionando alguns problemas e fazendo com que tenhamos que verificar, se o valor que recebemos é do tipo esperado.
Para solucionar alguns destes problemas, foi definido na versão 7 do PHP, a capacidade de definir o tipo do parâmetro da função, ou seja, podemos definir agora que determinada função deve receber como parâmetro, por exemplo, um número. Caso uma letra seja passada, o PHP fará [tentará fazer] o trabalho de conversão da mesma para número.
FUNÇÕES COM PARÂMETROS TIPADOS
Funções com parâmetros tipados é uma forma de evitarmos a checagem do tipo de cada parâmetro recebido. Assim, o interpretador fica com a tarefa de verificar se o valor que está sendo enviado para a função é do tipo esperado.
A seguir, estamos definindo uma função que recebe 2 parâmetros inteiros.
function getArea(int x, int y){
return x * y;
}
No exemplo acima, se passarmos por exemplo, um valor do tipo ponto flutuante como parâmetro, o PHP irá converter o mesmo para um inteiro, e o mesmo irá ocorrer se enviarmos um valor do tipo String.
Porém, podemos declarar no início do nosso código, que caso o valor que seja enviado não corresponda ao tipo esperado, uma exceção deve ser levantada informando o usuário de que o valor informando possui um tipo diferente do previsto. Dessa forma, o PHP pode se transformar numa linguagem fortemente tipada, ou seja, os valores e os tipos devem ser respeitados.
EXEMPLO FEITO EM AULA
declare(strict_types=1);
#FUNÇÕES COM PARÂMETROS TIPADOS
function getArea(int $x, int $y){
return $x * $y;
}
function getSum(int ...$valores){
return array_sum($valores);
}
echo getArea(10, 5) . "\n";
echo getSum(1,2,3,4,5,6,"100");
Tags curso, php, função, parâmetro, tipos, parâmetro tipado, blog
Comentários
comments powered by Disqus