Operadores de comparação Operadores de comparação como o próprio nome já diz compara dois valores retornando verdadeiro (TRUE) ou falso (FALSE). Veja uma tabela com os operadores de comparação. Veja um exemplo com cada um dos operadores, utilizaremos a função var_dump(), para retornar o resultado. <?php * Igual var_dump( 7 == 7 ); // TRUE, são iguais var_dump( 7 == 6 ); // FALSE, são diferentes * Diferente var_dump( 7!= 7 ); // FALSE, pois não são diferentes var_dump( 7!= 6 ); // TRUE, pois são diferentes // Segundo operador diferente var_dump( 7 <> 7 ); // FALSE, pois não são diferentes var_dump( 7 <> 6 ); // TRUE, pois são diferentes * Idêntico var_dump( 7 === 7 ); // TRUE, pois são iguais e do mesmo tipo, inteiros var_dump( 7 === 7.0 ); // FALSE, pois não são do mesmo tipo * Não idêntico
var_dump( 7!== 7 ); // FALSE, pois são iguais e do mesmo tipo, inteiros var_dump( 7!== 7.0 ); // TRUE, pois não são do mesmo tipo * Menor que var_dump( 7 < 8 ); // TRUE, 7 é menor que 8 var_dump( 7 < 6 ); // FALSE, 7 não é menor que 6 * Maior que var_dump( 7 > 6 ); // TRUE, 7 é maior que 6 var_dump( 7 > 8 ); // FALSE, 7 não é maior que 8 * Menor ou igual var_dump( 7 <= 7 ); // TRUE, 7 é igual a 7 var_dump( 7 <= 6 ); // FALSE, 7 não é menor nem igual a 6 var_dump( 3 <= 7 ); // TRUE, 3 é menor que 7 * Maior ou igual var_dump( 7 >= 7 ); // TRUE, 7 é igual a 7 var_dump( 7 >= 8 ); // FALSE, 7 não é maior nem igual a 8 var_dump( 10 >= 7 ); // TRUE, 10 é maior que 7?> Apesar de não definirmos variáveis por questões didáticas comparamos valores diretos mais não se esqueça que você pode comparar variável com variável e variável com valores fixos ou ainda como fizemos para exemplificar apenas os valores, resumindo qualquer tipo de dado pode ser comparado. E como foi dito anteriormente o resultado sempre será verdadeiro ou falso, neste ponto pode parecer inútil mais daqui a pouco fará mais sentido o retorno destes resultados. E não se esqueça que as conversões de dados são válidas aqui os valores são convertidos automaticamente quando comparados. Operadores lógicos Os operadores lógicos realizam comparação entre expressões, exceto o! que compara apenas um valor, e como os operadores de comparação retornam verdadeiro (TRUE) ou falso (FALSE). Observe a tabela com os operadores lógicos.
Veja um exemplo com cada um dos operadores, e como nos operadores de comparação utilizaremos a função var_dump(), para retornar o resultado. <?php * AND var_dump( 7 == 7 AND 9 > 7 ); // TRUE, ambas as expressões são var_dump( 7 == 7 AND 9 < 7 ); // FALSE, apenas a primeira expressão é verdadeira * OR var_dump( 7 == 7 OR 9 > 7 ); // TRUE, ambas as expressões são var_dump( 7!= 7 OR 9 > 7 ); // TRUE, a segunda expressão é verdadeira var_dump( 7!= 7 OR 9 < 7 ); // FALSE, ambas as expressões são falsas * XOR var_dump( 7 == 7 XOR 9 > 7 ); // FALSE, ambas as expressões são var_dump( 7 == 7 XOR 9 < 7 ); // TRUE, a primeira expressão é verdadeira var_dump( 7 < 7 XOR 9 > 7 ); // TRUE, a segunda expressão é verdadeira *! var_dump(! 9 < 7 ); // TRUE, 9 NÃO é menor que 7 var_dump(! 9 > 7 ); // FALSE, 9 é maior que 7 * &&
var_dump( 7 == 7 && 9 > 7 ); // TRUE, ambas as expressões são var_dump( 7 == 7 && 9 < 7 ); // FALSE, apenas a primeira expressão é verdadeira * var_dump( 7 == 7 9 > 7 ); // TRUE, ambas as expressões são var_dump( 7!= 7 9 > 7 ); // TRUE, a segunda expressão é verdadeira var_dump( 7!= 7 9 < 7 ); // FALSE, ambas as expressões são falsas?> Novamente não utilizamos variáveis por questões didáticas, as mesmas regras dos tipos de dados em operadores de comparação são validas aqui. Experimente agora que já sabe utilizar variáveis, ao invés de valores como inserirmos experimente substituir por variáveis. Precedência de operadores no PHP Agora você já conhece uma boa quantidade de operadores no PHP temos que conhecer a precedência, ou seja, quem é mais importante qual operador é avaliado primeiro e qual é avaliado em seguida. Observe o seguinte exemplo: 1 <?php 2 3 echo 5 + 2 * 3; 4 5?> O resultado será 11, pois o operador * tem maior precedência em relação ao operador +. Caso desejar realizar a operação com o operador + para só em seguida realizar a operação com o operador *. Observe o exemplo: 1 <?php 2 3 echo (5 + 2) * 3; 4 5?> Observe que utilizamos os parênteses para determinarmos quem deve ser executado primeiro, assim alterando o resultado para 21. A tabela seguinte mostra a precedência dos operadores, da maior precedência no começo para os de menor precedência.
Operador Descrição -! ++ -- Negativo, negação, incremento e decremento * / % Multiplicação, divisão e resto da divisão + -. Adição, subtração e concatenação > < >= <= Maior que, menor que, maior ou igual e menor ou igual ==!= <> Igual e diferente && E Ou = += -= *= /= %= Operadores de atribuição AND XOR OR E com menor prioridade Ou exclusivo Ou com menor prioridade É importante lembrar que primeiro o PHP executará todas as operações que estiverem entre parênteses, se dentro dos parênteses houver diversas operações a precedência dos operadores será utilizada para definir a ordem, após resolver todas as operações dos parentes, o PHP volta a resolver o que está fora dos parênteses baseando-se na tabela de precedência de operadores, havendo operadores de mesma prioridade o PHP resolverá a operação da esquerda para direita.