O PHP suporta várias opções de comparação de valores, vamos aprender sobre elas agora mesmo. Mas antes de começar, entenda que:
truesignifica verdadeiro efalseé falso;- Um
1é a mesma coisa quetrue; - Zero
0é a mesma coisa quefalse; PHP_EOLé uma constante do PHP que serve para quebrar linhas.
Agora sim, vamos aos comparadores de valor no PHP.
O operador igual duplo == compara dois valores e retorna true, se forem iguais, e false se os valores forem diferentes.
<?php
echo (0 == false) . PHP_EOL; //true
echo ('123' == 123) . PHP_EOL; //true
echo ('um' == 1) . PHP_EOL; //false
echo (123.0 == 123) . PHP_EOL; //true
/**
retorna: 1
1
1
**/Um ponto de exclamação ! com um sinal de igual = e pronto, dá isso aqui !=.
Com esse operador você pode testar se os valores são diferentes.
Se os valores forem diferentes o retorno é true, se forem iguais o retorno é false
<?php
echo (0 != false) . PHP_EOL; //false
echo ('123' != 123) . PHP_EOL; //false
echo ('um' != 1) . PHP_EOL; //true
echo (123.0 != 123) . PHP_EOL; //false
/**
retorna:
1
**/O PHP também pode testar se um valor é igual e do mesmo tipo, você pode chamar isso de: "testar se o valor é idêntico".
<?php
echo (0 === false) . PHP_EOL; //false
echo ('123' === 123) . PHP_EOL; //false
echo ('um' === 1) . PHP_EOL; //false
echo (123.0 === 123) . PHP_EOL; //false
//É tudo falso :(, por isso não retorna nadaÉ possível testar também se o valor não é idêntico, basta usar o operador !==, chame isso de: "testar se o valor não é idêntico", e novamente o PHP vai verificar o tipo do valor.
<?php
echo (0 !== false) . PHP_EOL; //true
echo ('123' !== 123) . PHP_EOL; //true
echo ('um' !== 1) . PHP_EOL; //true
echo (123.0 !== 123) . PHP_EOL; //true
/**
retorna: 1
1
1
1
**/O PHP suporta quatro operadores maiores/menores que:
<menor que;>maior que;<=menor ou igual a;>=maior ou igual a.
<?php
echo (2 < 3) . PHP_EOL; //true
echo (2 > 3) . PHP_EOL; //false
echo (2 <= 3) . PHP_EOL; //true
echo (2 >= 3) . PHP_EOL; //false
/**
retorna: 1
1
**/- O PHP tenta converter os valores na comparação de igual duplo
==, e diferente!=; - Por isso que a
string'123'' é igual==ao número123e o retorno étrue, mas não é idêntica===; - Na comparação de idênticos
===o PHP não tenta converter os valores; - Por isso, quando você tenta comparar se a string
'123'é idêntica===ao número123, o retorno éfalse, ou seja, diferente.