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!

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more