Está en la página 1de 4

Expresiones en PHP: Operadores relacionales

Los operadores relacionales comparan 2 operandos y devuelve un booleano que puede ser


TRUE o FALSE. Hay 3 tipos de operadores relacionales: igualdad, comparación y lógicos.
Todos estos nos permiten en condicionales obtener el comportamiento deseado de un programa
o página web.

Operadores de igualdad
En otros tutoriales ya lo habrás visto, el operador de igualdad es == . No hay que confundirlo

con el =, este es de asignación.


1 <?php
2   $mes = "Junio";
3  
4   if ($mes == "Junio") echo "Es verano!";
5 ?>
El operador relacional al poder devolver TRUE o FALSE permite probar condiciones con una
declaración if.
PHP al ser un lenguaje bastante flexible en cuanto al tipo de variables si los 2 operandos a
comparar tienen operandos diferentes, PHP los convertirá en cualquier tipo que se ajuste
mejor.
Un ejemplo sería un string compuesto solo de números. Este string si se compara con un

número el string se convierte en número para poder compararlo.

1 <?php
2   $a = "120";
3  
4   $b = "+120";
5  
6   if ($a == $b)  echo "Es igual";
7  
8   if ($a === $b) echo "Es exacto";
9 ?>
EL primero imprimirá “es igual” por tanto es TRUE. Esto se debe a que los 2 string se
convierten en número. El “+120” a número es 120 ya que es positivo.

El 2º ya no muestra nada debido a un operador de identidad (3 símbolos de igualdad).


Esto impide que PHP convierta los tipos de las variables. Por tanto, los 2 strings y no se
parecen.
Se puede comparar 2 operandos cuando se quiere probar si NO son iguales usando !=, el

operador de desilgudad .
1 <?php
2   $a = "120";
3  
4   $b = "+120";
5  
6   if ($a != $b)  echo "NO es igual";
7  
8   if ($a !== $b) echo "NO es exacto";
9 ?>
Sucede la inversa del caso anterior. El primer caso no devolverá nada ya que los 2 operandos
son iguales y con el != se busca lo contrario. El segundo caso al ser los 2 string y no ser iguales
imprimirá el mensaje.

Operadores de comparación
Estos operadores ofrecen mas que una igualdad o desigualdad. Permiten comparar si un

operando es mayor o menor respecto a otro

1 <?php
2   $a = 1; $b = 5;
3  
4   if ($a > $b)  echo "$a es mayor que $b <br>";
5  
6   if ($a < $b)  echo "$a es menor que $b <br>";
7  
8   if ($a >= $b) echo "$a es mayor o igual que $b <br>";
9  
10   if ($a <= $b) echo "$a es menor o igual que $b <br>";
11 ?>
Solo se imprimirán los mensajes de la 2º y 4º declaración. Puedes jugar con los valores de $a y
$b para ir probando diferentes resultados.
Operadores lógicos
Producen resultados true o false por tanto, también son conocidos como operadores
booleanos.
Operado Descripción
r

AND Si los operandos son TRUE devuelve TRUE.

OR Si cualquier operando es TRUE devuelve TRUE.

XOR Si SOLO uno de los 2 operandos es TRUE devuelve TRUE, si los 2 son


TRUE devuelve FALSE.

NOT Si el operando es FALSE devuelve TRUE, si el operando es TRUE


devuelve FALSE.

A continuación muestro un ejemplo

1 <?php
2 $a = 1; $b = 0;
3  
4 echo ($a AND $b) . "<br>";
5  
6 echo ($a or $b)  . "<br>";
7  
8 echo ($a XOR $b) . "<br>";
9  
10 echo !$a         . "<br>";
11 ?>
Aquellos resultados que muestren 1 es TRUE y aquellos que no muestren nada son NULL por
tanto es FALSE. El 4º al tener ! índica un NOT y es como si transformará el 1 en 0 dando
FALSE.
Hay que tener en cuenta que el AND y OR tienen menor precedencia que sus equivalentes
&& y ||. Otra cosa a considerar es que el operador OR en una declaración if devuelve TRUE si
el primer operando es TRUE y no comprueba el segundo.
Aquí dejo una tabla con las posibilidades de los operadores anteriores.

Operando y valor Operador y resultados

a b AND OR XOR

TRUE TRUE TRUE TRUE FALSE

TRUE FALSE FALSE TRUE TRUE


Operando y valor Operador y resultados

a b AND OR XOR

FALSE TRUE FALSE TRUE TRUE

FALSE FALSE FALSE FALSE FALSE

TRUE TRUE TRUE TRUE TRUE

TRUE TRUE TRUE TRUE TRUE

También podría gustarte