No PHP possuímos os seguintes conversores:
- , : Inteiro.
- , : Booleano.
- , , : Float.
- : String.
- : Array.
- : Objeto.
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:
- Caso a string não possua nenhum valor numérico será convertido para 0 (zero).
- Caso possua valor numérico em sua primeira posição o valor será considerado.
- Caso o valor não seja na primeira posição será desconsiderado e convertido para 0 (zero).
$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):
- O próprio booleano FALSE.
- O inteiro 0 (zero).
- O ponto flutuante 0.0 (zero).
- Uma string vazia e a string "0".
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 para debug.
0 Comentário
Deixe seu Comentário!