Dominando los Operadores de Comparación, Lógicos y de Bits en PHP

Los operaodres en PHP son fundamentales para manipular datos y construir flujos de control. Comprender las particularidades de los operadores de comparación, lógicos y de bits permite escribir scripts más robustos y optimizados.

Operadores de Comparación

Estos operadores evalúan dos expresiones y devuelven un valor booleano basándose en su relación matemática o de igualdad.

Menor que (<)

Retorna true si el operando de la izquierda es estrictamente menor que el de la derecha.

$temperaturaActual = 18;
$puntoCongelacion = 0;
var_dump($puntoCongelacion < $temperaturaActual); // Resultado: true

Menor o igual que (<=)

Devuelve true cuando el valor izquierdo es menor o idéntico al derecho.

$intentosFallidos = 3;
$limiteMaximo = 3;
var_dump($intentosFallidos <= $limiteMaximo); // Resultado: true

Operador Nave Espacial (<=>)

Conocido informalmente como el operador "TIE Fighter", realiza una comparación de tres vías. Retorna -1 si el izquiredo es menor, 0 si son iguales, y 1 si el izquierdo es mayor.

$pesoPaqueteA = 2.5;
$pesoPaqueteB = 5.0;
var_dump($pesoPaqueteA <=> $pesoPaqueteB); // Resultado: -1

Operadores Lógicos

Se utilizan para combinar expresiones condicionales. Es crucial recordar que estos operadores implementan evaluación de cortocircuito (short-circuit), lo que significa que el segundo operando solo se evalúa si es estrictamente necesario.

AND Lógico (&&)

El resultado es true únicamente si ambos operandos son verdaderos.

$esUsuarioPremium = true;
$cuentaVerificada = false;
var_dump($esUsuarioPremium && $cuentaVerificada); // Resultado: false

OR Lógico (||)

Retorna true si al menos uno de los operandos es verdadero. Debido al cortocircuito, si el primer operando es true, el segundo no se evalúa.

$tieneMascota = false;
$tieneJardin = true;
var_dump($tieneMascota || $tieneJardin); // Resultado: true

Operadores a Nivel de Bit

Estos operadores manipulan directamente los bits de los enteros, siendo útiles para optimizaciones de bajo nivel, máscaras de permisos y operaciones criptográficas.

NOT a nivel de bit (~)

Invierte cada bit del operando. En sistemas de 64 bits, los enteros tienen un tamaño fijo, y la inversión sigue la representación de complemento a dos.

$valorOriginal = 10; // Binario: ...00001010
$valorInvertido = ~$valorOriginal;
var_dump($valorInvertido); // Resultado: -11 (Complemento a dos)

AND a nivel de bit (&)

Compara cada bit de dos enteros. El bit resultante es 1 solo si ambos bits en esa posición son 1.

$permisosA = 0755; // Octal
$permisosB = 0644; // Octal
$interseccionPermisos = $permisosA & $permisosB;
var_dump(decoct($interseccionPermisos)); // Resultado: "644" (Representación octal de la intersección)

Etiquetas: PHP operadores-de-comparacion operadores-logicos operadores-bit-a-bit operador-spaceship

Publicado el 9-16 02:17