DEV Community

Cover image for [PHP curtas]: Tipagem dinâmica
Tadeu Barbosa
Tadeu Barbosa

Posted on

[PHP curtas]: Tipagem dinâmica

O PHP é uma linguagem dinamicamente tipada, isso significa que o compilador irá manipular uma variável de acordo com o valor que está sendo definido para a mesma.

Só pra gente entender melhor, existem linguagens com tipagem estáticas, como é o exemplo do Java. Caso você declare uma variável como sendo do tipo inteiro, você não poderá definir valores a ela que não seja um inteiro. No PHP podemos declarar uma variável como sendo um inteiro e mais a frente essa mesma variável pode receber um float ou uma string, ou qualquer outro tipo.

$valor = "Lorem ipsum";
if (is_string($valor)) {
  echo "Oi! Sou uma string!"; // Irá entrar aqui
}

$valor = 123;
if (is_numeric($valor)) {
  echo "Agora sou um número!"; // Irá entrar aqui
}
Enter fullscreen mode Exit fullscreen mode

Você precisa se atentar, porém, de declarar variáveis descritivas e afim de não receber um valor diferente do que espera. Isso principalmente quando você for voltar a mexer no código depois de um tempo, ou ainda outras pessoas foram mexer no código (no caso de equipes no trabalho ou códigos open-source, por exemplo).

Agora é um bom momento para falar sobre boas práticas ao declarar variáveis. A seguir darei dois exemplos de uma boa prática para declarar variáveis para que o seu conteúdo seja reconhecido facilmente.

$quantidadeUsuarios = 10;
$usuarios = [...];
Enter fullscreen mode Exit fullscreen mode

Apesar de não estar definido como sendo um inteiro, $quantidadeUsuarios claramente diz respeito a um número que é a quantidade dos usuário.

Uma outra questão a respeito disso é que o PHP permite que o tipo dos parâmetros sejam declarados nas funções. Isso é algo extremamente útil que muita gente deixa de usar.

function salvaDadosUsuario($conta, $total) {
  //
}

// declarando os tipos esperados e o tipo do retorno

function salvaDadosUsuario(ContaUsuario $conta, float $total): bool {
  //
}
Enter fullscreen mode Exit fullscreen mode

Deixamos a função mais descritiva declarando os tipos esperados e o tipo do retorno. Quem bate o olho entende que é esperado uma instância de ContaUsuario e um float com o total.


Espero ter ajudado! Até breve!

Discussion (0)