PHP tipado | Ao nível das melhores práticas

Resumo feito com IA; erros podem ocorrer. Não use este post como fonte de consulta!

O PHP é frequentemente criticado por não ser uma linguagem fortemente tipada, o que significa que, tradicionalmente, não é necessário definir os tipos de dados para variáveis, parâmetros de funções ou retornos. Isso permite que uma variável inicialmente definida como um número possa posteriormente receber uma string, por exemplo, sem causar erros imediatos. Essa flexibilidade, embora útil em alguns contextos, pode levar a confusões e erros difíceis de rastrear, especialmente em projetos maiores.

A partir do PHP 7, lançado em 2015, a linguagem introduziu a possibilidade de usar tipagem forte, permitindo definir tipos para parâmetros e retornos de funções. Com as atualizações subsequentes, como o PHP 7.4, essa funcionalidade foi expandida, incluindo a tipagem de propriedades de classes e a definição de múltiplos tipos de retorno (union types). Isso tornou o PHP mais previsível e menos propenso a erros, aproximando-o de linguagens como Java ou C#.

Para ativar a tipagem forte em um script PHP, é necessário incluir a declaração `declare(strict_types=1)` no início do arquivo. Com isso, o PHP passa a verificar rigorosamente os tipos de dados, gerando erros se houver incompatibilidades. Por exemplo, se uma função espera um inteiro como parâmetro e recebe uma string, um erro será lançado antes mesmo da execução do código, facilitando a identificação e correção de problemas.

Um exemplo prático é a função `somar(int $a, int $b): int`, que retorna a soma de dois inteiros. Se tentarmos passar uma string como argumento, o IDE (como PHPStorm ou Visual Studio Code) alertará sobre a incompatibilidade de tipos. Além disso, é possível definir múltiplos tipos de retorno, como `int|string|array`, aumentando a flexibilidade sem perder a segurança da tipagem.

Em classes, as propriedades também podem ser tipadas. Por exemplo, `public string $nome;` ou `public float $altura;` garantem que essas propriedades só aceitem valores do tipo especificado. Isso evita erros comuns, como atribuir um valor booleano a uma propriedade que deve ser uma string, e melhora a legibilidade e manutenção do código.

A tipagem forte também se aplica a métodos de classe. Por exemplo, um método `falar(string $mensagem): string` só aceitará uma string como parâmetro e retornará uma string. Tentar passar um número ou um booleano resultará em um erro, destacado pelo IDE antes da execução. Isso torna o desenvolvimento mais seguro e eficiente.

Adotar a tipagem forte no PHP é uma prática recomendada, pois torna o código mais robusto, previsível e fácil de manter. Além disso, coloca o PHP em pé de igualdade com linguagens fortemente tipadas, refutando críticas sobre sua flexibilidade excessiva. Assim como o TypeScript trouxe tipagem para o JavaScript, o PHP moderno permite que os desenvolvedores aproveitem os benefícios da tipagem sem abandonar a linguagem.

Marcadores ( tags )

Algo não está funcionando?

Notou algum recurso ( link, imagem, etc ) “quebrado” nesta pagina? Por favor, use o formulário de alerta abaixo. A correção será feita o mais breve possível.

    Solicitar remoção de conteúdo?

    Para impedir que práticas ilegais ocorram no ambiente digital e cumprir as exigencia do Marco Civil da Internet ( Lei 12.965/2014 ), disponibilisamos o formulário abaixo para que você possa solicitar a remoção deste conteúdo caso este viole os princípios, garantias, direitos e deveres para o uso da Internet no Brasil.

      LGPD? Navegando neste site, você entende e aceita as práticas de privacidade do Google.
      GDPR? By browsing this site, you understand and accept Google's privacy practices.
      👍 Ok!