O tipo Integer
Comparação com Inteiro
Um inteiro, assim como qualquer outro tipo, pode ser utilizado em uma condição. O valor zero é considerado falso, enquanto qualquer outro valor diferente de zero é considerado verdadeiro.
Comparar com Bool
Quando um valor inteiro é comparado com um valor booleano, o valor inteiro é convertido para booleano e a condição é testada.
Comparar com Float
Quando um inteiro é comparando com um número real, ele é convertido para real e a condição é testada.
Mas cuidado com a perda de precisão que ocorre com números reais!
Comparar com String
Quando um inteiro é comparado com uma string é complicado. Pode-se entender que o funcionamento é: o inteiro é convertido para flot, a string é convertida para float, e a condição é testada.
Lembre-se de que existe o operador idêndico (===), que testa se um valor tem o mesmo tipo e o mesmo valor que outro.
*** A conversão do "10e-1" para 1.0 pode ser discutida em um artigo sobre float.
Um inteiro, assim como qualquer outro tipo, pode ser utilizado em uma condição. O valor zero é considerado falso, enquanto qualquer outro valor diferente de zero é considerado verdadeiro.
// Condicao satisfeita if (1) { echo 'verdadeiro'; } // Condicao satisfeita if (-8) { echo 'verdadeiro'; } // Condicao nao satisfeita if (0) { echo 'falso'; }
Comparar com Bool
Quando um valor inteiro é comparado com um valor booleano, o valor inteiro é convertido para booleano e a condição é testada.
$b = 1 == true; // true == true -> true $b = 2 == true; // true == true -> true $b = -3 == true; // true == true -> true $b = 0 == true; // false == true -> false $b = 1 == false; // true == false -> false $b = 2 == false; // true == false -> false $b = -3 == false; // true == false -> false $b = 0 == false; // false == false -> true
Comparar com Float
Quando um inteiro é comparando com um número real, ele é convertido para real e a condição é testada.
Mas cuidado com a perda de precisão que ocorre com números reais!
Comparar com String
Quando um inteiro é comparado com uma string é complicado. Pode-se entender que o funcionamento é: o inteiro é convertido para flot, a string é convertida para float, e a condição é testada.
$b = 1 == '1'; // 1.0 == 1.0 -> true $b = 1 == 'a'; // 1.0 == 0.0 -> false $b = 1 == '1.0'; // 1.0 == 1.0 -> true $b = 1 == '1.1'; // 1.0 == 1.1 -> false $b = 1 == ''; // 1.0 == 0.0 -> false $b = 1 == '10e-1'; // 1.0 == 1.0 -> true*** $b = 0 == '1'; // 0.0 == 1.0 -> false $b = 0 == '0'; // 0.0 == 0.0 -> true $b = 0 == 'a'; // 0.0 == 0.0 -> true $b = 0 == '0.0'; // 0.0 == 0.0 -> true $b = 0 == '0.1'; // 0.0 == 0.1 -> false $b = 0 == ''; // 0.0 == 0.0 -> true
Lembre-se de que existe o operador idêndico (===), que testa se um valor tem o mesmo tipo e o mesmo valor que outro.
*** A conversão do "10e-1" para 1.0 pode ser discutida em um artigo sobre float.
Novo Comentário: