Conversão de Tipos de Dados no PHP

É possível converter a variável de um tipo para outro? Para fazer a conversão devemos utilizar o tipo pra qual devemos converter entre parênteses antes do nome da variável em que se deseja converter.

No PHP possuímos os seguintes conversores:

Converter de float para inteiro

Quando convertemos um número ponto flutuante, para inteiro ele sempre terá o seu valor truncado, ou seja, arredondado para baixo.

$float = (int) 10.9; 
echo $float; // 10

$float = (int) 10.1;
echo $float; // 10

Converter string em inteiro

A conversão de string para inteiro depende de seu formato:

$string = (int) 'Qual sua idade?'; 
echo $string; // 0

$string = (int) '38 anos';
echo $string; // 10

$string = (int) 'Exatamente 38 anos e 7 meses';
echo $string; // 0

Converter booleano em inteiro

A conversão de booleano para string segue uma regra simples em que o valor TRUE é definido como 1 (um) e o valor FALSE é definido como 0 (zero).

$bool = (int) TRUE; 
echo $bool; // 1

$bool = (int) FALSE;
echo $bool; // 0

Converter de string para float

As regras de conversão para float seguem as mesmas que na conversão de dados para inteiros. Exceto na conversão para strings.

A string será avaliada como um ponto flutuante se conter qualquer um dos caracteres '.', 'e', ou 'E', lembrando que a string deve ser iniciada com um número. Caso contrário será convertido para 0 (Zero).

$string = (float) 'Qual sua altura?'; 
echo $string; // 0

$string = (float) '1.82cm';
echo $string; // 1.82

$string = (float) 'Eu tenho 1.82cm de altura';
echo $string; // 0

Converter booleano em string

Quando convertemos um valor booleano para string ocorre uma simples regra o valor TRUE será convertido na string 1 e o valor FALSE será convertido em uma string vazia.

$bool = (string) TRUE;
echo $bool; // "1"

$bool = (string) FALSE;
echo $bool; // ""

Converter inteiro e float em string

Na conversão de inteiro e float o número será convertido para string mantendo a sua representação.

$inteiro = (string) 150;
echo $inteiro; // "150"

$float  = (string) 1.77;
echo $float; // "1.77"

Conversão de dados para booleano

Na conversão de dados para booleano os seguintes valores serão considerados FALSE (falso):

Qualquer outro valor será convertido em TRUE (verdadeiro):

$bool = (bool) FALSE;
echo $bool; // false

$inteiro = (bool) 0;
echo $inteiro; // false

$float = (bool) 0.0;
echo $float; // false

$string = (bool) '';
echo $string; // false

$inteiro = (bool) 10;
echo $inteiro; // true

$float = (bool) 1.0;
echo $float; // true

$string = (bool) 'Uma string';
echo $string; // true

Converter array para object

Você não precisa de uma função PHP para converter uma Array em um Object. A função (object) fará isso com qualquer array do PHP.

$city = new stdClass();
$city->id = 1;
$city->value = 'Curitiba';

$object = (array)$city;
print_r($object); // Array ( [id] => 1 [value] => Curitiba ) 

Se você precisar alterar um Object em um Array, use a função de conversão de tipo (array).

$city = array();
$city['id'] = 1;
$city['value'] = 'Curitiba';

$array = (object)$city;
print_r($array); // stdClass Object ( [id] => 1 [value] => Curitiba ) 

Conversão automática de tipos de dados

Apesar de existirem os conversores que acabamos de ver o PHP também possui a conversão automática de tipos que funciona seguindo as mesmas regras que acabamos de ver.

$soma = 10 + 3.5;
echo $soma; // 13.5

$soma = 10 + 7.0;
echo $soma; // 17

$soma = 10 + FALSE;
echo $soma; // 10

$soma = 1 + '7.5';
echo $soma; // 8.5

$soma = 1 + '-7.5 graus celcius';
echo $soma; // -6.5

$soma = 1 + 'Caio tem 12 anos';
echo $soma; // 1

$soma = '18 como programador' + 1;
echo $soma; // 19

Conclusão

A conversão entre diferentes tipos de dados pode ser necessária quando se realiza operações aritméticas com variáveis e no envio e recebimento de dados do webservices. Tecnicamente falando, este processo é chamado de Type Casting, e como o próprio nome já diz, ele converte o modo de vazamento (ou distribuição) de um elemento.

Obs.: Se você não sabe o tipo do elemento, use a função var_dump para debug.

Tecnologia:
php

Deixe seu Comentário!

Comentário
Nome
Email