En PHP, los operadores lógicos se utilizan para combinar sentencias condicionales. Estos operadores le permiten crear condiciones más complejas mediante la combinación de varias condiciones.

Los operadores lógicos se utilizan generalmente en sentencias condicionales como los bucles if, while y for para controlar el flujo de ejecución del programa en función de condiciones específicas.

En la siguiente tabla se destacan los operadores lógicos soportados por PHP.

Supongamos que la variable $a contiene 10 y la variable $b contiene 20, entonces −

OperadorDescripciónEjemplo
andOperador lógico AND llamado. Si ambos operandos son verdaderos, la condición se convierte en verdadera.(A y B) es verdadero
orLlamado operador lógico OR. Si alguno de los dos operandos es distinto de cero, la condición se convierte en verdadera.(A o B) es verdadero
&&Operador lógico AND llamado. El operador AND devuelve true si los operandos izquierdo y derecho son verdaderos.(A y B) es verdadero
||Llamado operador lógico OR. Si alguno de los dos operandos es distinto de cero, la condición se convierte en verdadera.(A || B) es verdadera
!Llamado operador lógico NOT. Se usa para invertir el estado lógico de su operando. Si una condición es verdadera, el operador lógico NOT hará que sea falsa.! (A y B) es falso

Ejemplo

El siguiente ejemplo muestra cómo puede usar estos operadores lógicos en PHP:

<?php
   $a = 42;
   $b = 0;

   if ($a && $b) {
      echo "TEST1 : Both a and b are true \n";
   } else {
      echo "TEST1 : Either a or b is false \n";
   }

   if ($a and $b) {
      echo "TEST2 : Both a and b are true \n";
   } else {
      echo "TEST2 : Either a or b is false \n";
   }

   if ($a || $b) {
      echo "TEST3 : Either a or b is true \n";
   } else {
      echo "TEST3 : Both a and b are false \n";
   }

   if ($a or $b) {
      echo "TEST4 : Either a or b is true \n";
   } else {
      echo "TEST4 : Both a and b are false \n";
   }

   $a = 10;
   $b = 20;

   if ($a) {
      echo "TEST5 : a is true \n";
   } else {
      echo "TEST5 : a is false \n";
   }

   if ($b) {
      echo "TEST6 : b is true \n";
   } else {
      echo "TEST6 : b is false \n";
   }

   if (!$a) {
      echo "TEST7 : a is true \n";
   } else {
      echo "TEST7 : a is false \n";
   }

   if (!$b) {
      echo "TEST8 : b is true \n";
   } else {
      echo "TEST8 : b is false";
   }
?>

Producirá el siguiente resultado:

TEST1 : Either a or b is false 
TEST2 : Either a or b is false 
TEST3 : Either a or b is true 
TEST4 : Either a or b is true 
TEST5 : a is true 
TEST6 : b is true 
TEST7 : a is false 
TEST8 : b is false