+1

O tipo Integer

criado por Rubens Takiguti Ribeiro em 28/11/2009 9:20pm
Conversão para Inteiro

Uma característica interessante de PHP é a facilidade de converter valores entre os diferentes tipos. Mas você sabe o que ocorre com um valor quando é convertido para inteiro?

De um Float

Quando um valor real é convertido para inteiro, suas casas decimais são ignoradas.

$i = intval(0.1); // $i = 0;
$i = intval(0.5); // $i = 0;
$i = intval(0.9); // $i = 0;
$i = intval(4.1); // $i = 4;
$i = intval(4.9999999); // $i = 4;
$i = intval(-1.1); // $i = -1;
$i = intval(-1.9); // $i = -1;

Observe que você não pode dizer que o valor é arredondado para baixo, já que para valores negativos ele é arredondado para cima (para um valor menos negativo).

De um Bool

O valor true é convertido para o inteiro 1 (um), enquanto o valor false é convertido para o inteiro 0 (zero).

$i = intval(true); // $i = 1;
$i = intval(false); // $i = 0;

De um Array

Vetores vazios são convertidos para o inteiro 0 (zero), enquanto os vetores não vazios são convertidos para o inteiro 1 (um).

$i = intval(array(3, 5, 2)); // $i = 1;
$i = intval(array()); // $i = 0;

De uma String

A conversão de uma string para inteiro é a mais complexa. A string é analisada da esquerda para a direira. A porção da string que pode ser capturada (a partir do primeiro caractere) e pode ser interpretada como um inteiro, é usada para converter o valor para inteiro. Ou seja, assim que um caractere estranho (por exemplo, uma letra ou um símbolo) é encontrado, tudo o que está a esquerda é ignorado. Uma exceção é com o sinal de menos, para representar um número negativo. Quando nenhuma porção da string pode ser capturada (da esquerda para direita), então o valor é interpretado como zero.

$i = intval('0'); // 0
$i = intval('a'); // 0
$i = intval('1'); // 1
$i = intval('01'); // 1
$i = intval('012'); // 12
$i = intval('13a14'); // 13
$i = intval('a123'); // 0
$i = intval('12 13 14'); // 12
$i = intval('-12 -13 -14'); // -12

De um Object

Objetos não podem ser convertidos em Inteiro.

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)