[Ir al menú de PHP]
Operadores lógicos

Operadores lógicos

Los operadores lógicos son operadores de comparación sobre variables lógicas, es decir, sobre aquellas cuyos valores sean únicamente: VERDADERO o FALSO

$A AND $B

El operador AND devuelve VERDADERO (1) unicamente cuando todas la variables lógicas comparadas son verdaderas y devuelve FALSO (0) cuando al menos una de la variables lógicas tiene el valor de FALSO.

$A && $B

El operador && se comporta de forma idéntica al operador AND. La única diferencia entre ambos según dice el Manual oficial de PHP es que operan con distinta precedencia.
Como .. donde Dios no da... Salamanca no presta... no he podido saber -por el momento- cual es esa diferencia, ambos son asociativos por la izquierda y al construir tablas de verdad con ambos, los resultados parecen idénticos tal como puedes ver el los ejemplos de la derecha.

$A or $B

Para que el operador OR devuelve VERDADERO (1) es suficiente queuna sola de las variables lógicas comparadas sea verdadera y solo devolverá FALSO (0) cuando todas ellas sean FALSAS.

$A || $B

El operador || se comporta de forma idéntica al operador OR.
Son válidos los comentarios hechos con relación a AND y &&.

$A XOR $B

El operador XOR devuelve VERDADERO (1) cuando ES CIERTO UNA SOLA de los dos variables lógicas comparadas y FALSO (0) cuando AMBAS son CIERTAS o cuando AMBAS son FALSAS.

$A XOR $B XOR $C

Es equivalente a ($A XOR $B) XOR $C . Es decir, realiza la comparación de las dos primeras variables y luego compara el resultado con la tercera de las variables.

! $A

Este operador (negación) devuelve VERDADERO si la variable lógica $A es FALSA y devuelve FALSO si el valor de la variable $A es VERDADERO.

Observaciones
Fíjate en las tablas de verdad, cuando el resultado es FALSO el operador XOR devuelve el caracter NUL, sin embargo los demás operadores devuelven CERO.
¿Por qué?. Ni idea..., si consigo averiguarlo lo pondré aquí y si tu sabes el por qué y la incidencia... no dejes de avisarme.


 
 


Operadores lógicos

Aquí tienes las tablas de verdad de los distintos operadores lógicos

El operador AND
Variables $a=32; $b=0; $c=-7; $d=4.32; $f="23 Ptas"
Condición A Condición B Condición C  A   B   C   Resultado 
$a>$b $a>$c $a>$f  1   1   1   1 
$a>$b $a>$c $a<$f  1   1       
$a>$b $a<$c $a>$f  1      1    
$a<$b $a>$c $a>$f     1   1    
$a<$b $a<$c $a>$f        1    
$a<$b $a>$c $a<$f     1       
$a>$b $a<$c $a<$f  1          
$a<$b $a<$c $a<$f            

El operador &&
Variables $a=32; $b=0; $c=-7; $d=4.32; $f="23 Ptas"
Condición A Condición B Condición C  A   B   C   Resultado 
$a>$b $a>$c $a>$f  1   1   1   1 
$a>$b $a>$c $a<$f  1   1       
$a>$b $a<$c $a>$f  1      1    
$a<$b $a>$c $a>$f     1   1    
$a<$b $a<$c $a>$f        1    
$a<$b $a>$c $a<$f     1       
$a>$b $a<$c $a<$f  1          
$a<$b $a<$c $a<$f            

El operador OR
Variables $a=32; $b=0; $c=-7; $d=4.32; $f="23 Ptas"
Condición A Condición B Condición C  A   B   C   Resultado 
$a>$b $a>$c $a>$f  1   1   1   1 
$a>$b $a>$c $a<$f  1   1      1 
$a>$b $a<$c $a>$f  1      1   1 
$a<$b $a>$c $a>$f     1   1   1 
$a<$b $a<$c $a>$f        1   1 
$a<$b $a>$c $a<$f     1      1 
$a>$b $a<$c $a<$f  1         1 
$a<$b $a<$c $a<$f            

El operador ||
Variables $a=32; $b=0; $c=-7; $d=4.32; $f="23 Ptas"
Condición A Condición B Condición C  A   B   C   Resultado 
$a>$b $a>$c $a>$f  1   1   1   1 
$a>$b $a>$c $a<$f  1   1      1 
$a>$b $a<$c $a>$f  1      1   1 
$a<$b $a>$c $a>$f     1   1   1 
$a<$b $a<$c $a>$f        1   1 
$a<$b $a>$c $a<$f     1      1 
$a>$b $a<$c $a<$f  1         1 
$a<$b $a<$c $a<$f            

El operador XOR
Variables $a=32; $b=0; $c=-7; $d=4.32; $f="23 Ptas"
Condición A Condición B  A   B   Resultado 
$a>$b $a>$c  1   1    
$a>$b $a<$c  1      1 
$a<$b $a>$c     1   1 
$a<$b $a<$c         

El operador XOR
Variables $a=32; $b=0; $c=-7; $d=4.32; $f="23 Ptas"
Condición A Condición B Condición C  A   B   C   Resultado 
$a>$b $a>$c $a>$f  1   1   1   1 
$a>$b $a>$c $a<$f  1   1       
$a>$b $a<$c $a>$f  1      1    
$a<$b $a>$c $a>$f     1   1    
$a<$b $a<$c $a>$f        1   1 
$a<$b $a>$c $a<$f     1      1 
$a>$b $a<$c $a<$f  1         1 
$a<$b $a<$c $a<$f            


Sugerir a un/a amig@ Envíame tus comentarios
Anterior
Indice
Siguiente