Los operadores de los condicionales en PHP

Cuando se trabaja con condicionales se emplean dos tipos de operadores: los comparativos y los lógicos. Los operadores comparativos se emplean para comparar dos valores, o una variable y un valor, o dos variables, o una constante con un valor o una variable, etc, y evaluar su relación. Por este motivo a estos operadores se les llama, también, relacionales. Son los que aparecen en la siguiente tabla:

OPERADORES COMPARATIVOS
Operador Función
== Evalúa la condición como verdadera si el valor a la izquierda del operador es igual al de la derecha, aunque no sean el mismo tipo de dato.
=== Evalúa la condición como verdadera si el valor a la izquierda del operador es igual que el de la derecha y, además, son el mismo tipo de dato.
!= Evalúa la condición como verdadera si el valor a la izquierda del operador es distinto del de la derecha
!== Evalúa la condición como verdadera si el valor a la izquierda del operador es distinto del de la derecha o, si aún siendo iguales, son de diferente tipo.
>

Evalúa la condición como verdadera si el valor a la izquierda del operador es mayor que el que hay a la derecha.

< Evalúa la condición como verdadera si el valor a la izquierda del operador es menor que el que hay a la derecha.
>= Evalúa la condición como verdadera si el valor a la izquierda del operador es mayor o igual que el que hay a la derecha.
<= Evalúa la condición como verdadera si el valor a la izquierda del operador es menor o igual que el que hay a la derecha.

Debe tener en cuenta la diferencia entre el operador de igualdad (==) y el operador de identidad (===). Este último, además de comparar dos valores, compara también, el tipo de dato que son. Suponga el siguiente fragmento de código:

$a=1;
$b="1";
if ($a == $b){
echo "Los valores son iguales.";
} else {
echo "Los valores NO son iguales.";
}
echo "<br />";
if($a === $b) {
echo "Los valores son idénticos.";
} else {
echo "Los valores NO son idénticos.";
}

En la página obtendrá el siguiente resultado:

Los valores son iguales.
Los valores NO son idénticos.

A menudo la disposición de términos en un condicional puede inducir a confusión en la lectura del código por parte de una persona no experimentada. Por ejemplo, suponga el condicional siguiente:

if ($a == 10){

Algunas personas novatas pueden interpretar este código incorrectamente al leerlo. PHP nos permite invertir los términos, así:

if (10 == $a) {

La comparación es la misma y funciona de igual modo. Muchos programadores emplean esta notación. El usar una u otra es una cuestión de criterio personal.

Por supuesto, en un condicional se pueden evaluar otros tipos de datos, así:

$v1= "Norte";
$v2 = "Sur";
if ($v1 > $v2){
echo "El Norte es mayor que el Sur.";
} else {
echo "El Norte NO es mayor que el Sur.";
}

En la página veremos:

El Norte NO es mayor que el Sur.

Dado que los datos de tipo String son realmente, colecciones de datos binarios, la comparacion, en este caso, se efectúa byte a byte, basándose en el código ASCII de cada byte comparado. Es decir, se compara el valor ASCII del primer byte de la primera cadena con el valor ASCII del primer byte de la segunda cadena. Si fueran iguales (en este caso, no lo son), se sigue comparando el valor ASCII del segundo byte de cada dato y, así, sucesivamente.

Podemos exhibir directamente el resultado de una comparación en la página como un valor que represente el resultado de dicha comparación, sin necesidad de hacer algo específico con dicho resultado; simplemente, se trata de mostrarlo. Observe el siguiente fragmento de script:

$v1 = 10;
$v2 = 10;
// Mostrando la comparación.
echo $v1 = $v2;

En principio, esto debería mostrar el resultado de la comparación en la página. Sin embargo, hay un problema. Si la condición se evalúa como verdadera (como ocuerre en este caso), se muestra un 1, pero si se evalúa como falsa no se muestra el resultado. Así podemos modificar el script de la siguiente manera:

$v1 = 10;
$v2 = 10;
//Mostrando la comparación.
echo (int) ($v1 == $v2);

En este ejemplo, si la condición se evalúa como falsa, veremos un 0 en la página. Si se evalúa como verdadera, veremos un 1. En cualquier caso, siempre hay un resultado visible. Esto obedece a las reglas de conversión de valores, transformando un resultado booleano en un valor entero, que es el que se muestra en la salida del navegador.

Además de los operadores comparativos, contamos con los operadores lógicos. Estos se emplean para unir dos condiciones (excepto uno de ellos, que trabaja con una sola) evaluándolas en conjuntos, según determinadas directrices. Mediante el uso de los operadores lógicos, podemos crear condiciones tan compleajas como sean necesarios.

Los operadores lógicos de PHP se encuentran recogidos en la tabla que aparece a continuación, con una breve explicación de cada uno de ellos.

OPERADORES LÓGICOS
Operador Funcionamiento
&& / and Une dos condiciones de modo que se obtiene un resultado verdadero si ambas lo son.
|| / or Une dos condiciones de modo que se obtiene un resultado verdadero si una de ellas lo es o lo son ambas.
^ / xor Une dos condiciones de modo que se obtiene un resultado verdadero si una de las dos condiciones, y sólo una, es verdadero. Si lo son las dos, o no lo es ninguna, se obtiene un resultado false.
! Este operador se aplica a una condición, de modo que se obtiene un resultado true si la misma no se cumple y un resultado false si se cumple.

Cuando dos condiciones se evalúan para obtener un resultado con alguno de los tres primeros operadores de la tabla, se puede usar la forma simbólica o literal del mismo. Es decir, considere, por ejemplo, la siguiente línea de código:

if (($edad < 30 ) && ($edad > 10)) {

Es equivalente a la siguiente:

if (($edad < 30) and ($edad > 10)) {

Sin embargo, por un convencionalismo no escrito la mayoría de los programadores empleamos la forma simbólica (la primera).

Comparte