Type Cast ou Conversão de tipos do PHP: Isso pode te ajudar muito!

Amigos!

Hoje irei abordar um assunto muito simples: The Type Casting de variáveis! Como vozmecêis sabem o PHP não é uma linguagem fortemente tipada, ou seja, pode-se fazer qualquer putaria com uma variável. Eu sinceramente acho isso horrível e talvez essa seja uma das causas do PHP ser reconhecido como uma linguem “suja” e de “moleque”.

Entretanto você que é ou aspira ser um desenvolvedor PHP conciente (e competente), deve saber que manter o tipo de uma variável do começo ao fim da execução do script é uma excelente prática. Mas afinal, onde entra a tal história do Type Cast?

É muito simples! se você fizer uma declaração como:

$salario = '2256,52'

Verás que a variável $salario, apesar de você querer que ela armazene na verdade um double, ela irá conter uma String!, agora como resolver este enigmático problema?

$salario = (double) str_replace(',','.', '2256,52');

Pronto! assim, usando a função var_dump você poderá verificar que a variável, agora contém um float (mesma coisa q double no PHP).  Dessa maneira tem-se que o type casting é muito útil na recuperação de dados de formulários!

Existe também a utilização para evitar SQL Injection, para você garotinho jovem, garotinho juvenil que não gosta de usar PDO, veja a situação:

“Eu tenho um trecho de código que pega uma variável $_GET, que contém uma ID que pretendo resgatar no banco”

Nesse caso, os desenvolvedores mais preocupados usam trilhões de expressões regulares e adventos para garantir que só passe de fato um número para a tal String de query, veja:

$id = limpar($_GET['id']);

$result = mysql_query("SELECT * FROM tabela WHERE id=$id");

Veja que na função limpar() estamos exemplificando a tentativa de remover palavras reservadas do SQL como drop, por exemplo.

Mas… como sabemos, a maioria das ID’s são numéricas e inteiros, então poderiamos fazer assim:

$id = (int) $_GET['id'];

$result = mysql_query("SELECT * FROM tabela WHERE id=$id");

Assim nossa variável $id só irá aceitar valores inteiros, independende do que estiver na $_GET, por exemplo, se $_GET conter “drop”, $id irá conter 0 (zero, integer), pelo fato do typpe cast só resgatar valores inteiros do variável $_GET.

Muito interessante não é?

O PHP tem muitos elementos práticos rápidos, leia a documentação =)

Abraços,

Tiago.

Publicado por

Prof. Me. Tiago A. Silva

Prof. Me. Tiago A. Silva

Mestre em Tecnologia (UNICAMP, 2018), Licenciado em Computação e Pedagogia (Claretiano, 2017 e 2018, respectivamente), Especialista em Desenvolvimento de Software para Web com ênfase em Java (UNIFEG, 2015), Especialista em Educação a Distância (FACEL, 2017) e Tecnólogo em Informática para Gestão de Negócios (FATEC Mococa, 2010). Atualmente sou Professor no Ensino Técnico no Centro Paula Souza. Já atuei como Professor no Ensino Superior no Centro Universitário Moura Lacerda (2017), Programador de Sistemas na Prefeitura de Cajuru (2014-2017), além de possuir 11 anos de experiência em desenvolvimento web trabalhando com diversas ferramentas e frameworks.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *