Iniciante php PHP 15 min de leitura

Conversão de Tipos

Conversão de Tipos

Compreendendo a Conversão de Tipos de Dados em PHP

PHP, como muitas linguagens de programação, lida automaticamente com a forma como diferentes tipos de dados interagem. Essa conversão automática é chamada de manipulação de tipos. No entanto, às vezes você precisa controlar explicitamente como um valor é tratado como um tipo de dado específico. Esse processo é conhecido como conversão de tipos. Vamos explorar ambos os conceitos.

Manipulação de Tipos e o Operador Nave espacial

Quando o PHP encontra expressões envolvendo diferentes tipos de dados, ele frequentemente executa o que é chamado de "manipulação de tipos" para torná-los compatíveis. Isso significa que ele converte valores de um tipo para outro nos bastidores. O operador nave espacial (<=>) demonstra esse comportamento de uma maneira única. Ele retorna -1 se o lado esquerdo for menor que o lado direito, 1 se for maior e 0 se forem iguais. No entanto, a comparação é influenciada pelas regras de manipulação de tipos do PHP. Por exemplo, uma representação de string de um número será tratada como um número durante a comparação, levando potencialmente a resultados inesperados.

Considere estes cenários:

<?php
var_dump(55 <=> 22);
var_dump("22" <=> 22);
?>

O primeiro exemplo pode parecer direto, mas o segundo ilustra como a conversão automática de tipos do PHP afeta o resultado.

Conversão Explícita de Tipos

A conversão explícita de tipos é o processo de converter um valor manualmente para um tipo de dado específico. Isso contrasta com a manipulação de tipos, que acontece automaticamente. A conversão explícita lhe dá maior controle sobre como o PHP interpreta seus dados. Para converter um valor, simplesmente coloque o nome do tipo de dado desejado entre parênteses antes da expressão que você deseja converter.

Aqui está a sintaxe geral:

(tipo_de_dado) expressão

Vamos analisar alguns exemplos de como converter vários tipos de dados escalares:

<?php
$age = (int)20.5;
var_dump($age);

$price = (string)9.99;
var_dump($price);

$inventory = (bool)0;
var_dump($inventory);
?>

No primeiro exemplo, o número de ponto flutuante 20.5 é convertido para um inteiro, truncando a parte decimal. No segundo, o número 9.99 é convertido para uma string. Finalmente, o número 0 é convertido para um booleano, resultando em false.

Onde a Conversão de Tipos e a Manipulação de Tipos Aparecem

A manipulação de tipos do PHP não está limitada a comparações. Ela também ocorre em operações lógicas (como && e ||), no operador ternário e em declarações condicionais (if, switch). Cobriremos esses contextos com mais detalhes mais tarde. A manipulação de tipos também pode ser vista quando funções são chamadas, onde os argumentos são comparados com os tipos de dados esperados definidos na assinatura da função. Operações bitwise, embora tecnicamente outro contexto para a manipulação de tipos, são menos comuns no desenvolvimento web e não serão discutidas em profundidade aqui.