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!

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay