Los operadores lógicos - Curso de PHP y MySQL - Capítulo 14

Es el momento de ver los operadores lógicos.

¿Qué son los operadores lógicos?

Los operadores lógicos nos permiten realizar una comparación entre dos valores de tipo boolean. De esa comparación, nos devuelve otro boolean.

El operador lógico and

El operador lógico and (y) devuelve un valor true si los dos valores boolean devuelven true. En el caso de que uno de los dos de false, el resultado será false.

Código PHP

$valor1 = 10;
$valor2 = 10;
$valor3 = 15;

if ($valor1 == $valor2 and $valor1  < $valor3) {
	echo "Verdadero";
}

Resultado en el navegador

Nos da true, ya que $valor1 es igual a $valor2 y tamabién, $valor1 es menor que $valor3.

Verdadero

Si cambiamos el menor qué por un mayor qué, esta vez devolverá false, ya que aunque se cumpla la primera comparación, si no se cumple la otra, el and, devuelve false.

Código PHP

$valor1 = 10;
$valor2 = 10;
$valor3 = 15;

if ($valor1 == $valor2 and $valor1  > $valor3) {
	echo "Verdadero";
}

Resultado en el navegador

Podemos escribir el operador lógico and con el doble ampersand (&&).

Este actúa igual, solo que tienen distinto orden de precedencia, al igual que ocurre con los operadores de multiplicación y división sobre los de suma y resta, por ponerte un ejemplo. Es decir, si hay varios operadores and y &&, se va a dar preferencia a &&. No entraremos aún en estos detalles.

Código PHP

$valor1 = 10;
$valor2 = 10;
$valor3 = 15;

if ($valor1 == $valor2 && $valor1 === $valor2) {
	echo "Verdadero";
}

Resultado en el navegador

Verdadero

El operador lógico or

El operador lógico or (o) y ||, devuelven true si se cumple al menos una de las comparaciones, aunque alguna de false, da igual. Si todo da false, entonces devuelve false.

Código PHP

$valor1 = 10;
$valor2 = 10;
$valor3 = 15;

if ($valor1 < $valor2 or $valor1 < $valor3) {
	echo "Verdadero";
}

Resultado en el navegador

Puesto que se cumple $valor1 < $valor3, devuelve true.

Verdadero

En cambio, aquí, todo da false:

Código PHP

$valor1 = 10;
$valor2 = 10;
$valor3 = 15;

if ($valor1 != $valor2 || $valor1 == $valor3) {
	echo "Verdadero";
}

Resultado en el navegador

El operador lógico not

El operador lógico ! devuelve todo lo contrario de la expresión que se le pase. Aquí tienes un ejemplo:

$valor1 = 10;
$valor2 = 12;

if (!($valor2 == $valor1)) {
	echo "Verdadero";
}

Resultado en el navegador

Verdadero