operateurs logiques

operateurs logiques - PHP - Programmation

Marsh Posté le 26-12-2007 à 21:15:53    

Je désire créer un script qui verifie si deux valeur sont "false"
 
est-ce que ce code:  
==php==
 
if ( ($a == false) OR ($b == false) ) {
       exit('bye');
       }
 
==fin==
 
equivaut a celui-ci ?
 
==php==
if ($a == false) {
        exit('bye');
        } else {
 
        if ($b == false) {
                exit ('bye');
                }
        }
==fin==
 
Et peut on ecrire:
 
==php==
if ( !$a OR !$b ) {
        exit('bye');
        }
==fin==
 
ou bien n'ai-je pas encor compris ?
merci d'avance...

Reply

Marsh Posté le 26-12-2007 à 21:15:53   

Reply

Marsh Posté le 26-12-2007 à 22:22:17    

Attention à bien prendre en compte que la valeur 0 peut être interprétée comme false.
Pour vérifier que $a est false et qu'il est booléen utilise le triple égal ( === )

Reply

Marsh Posté le 26-12-2007 à 22:28:53    

et concernant cette formulation ? est ce correct ?
 
if ( !$a OR !$b ) {
        exit('bye');
        }  

Reply

Marsh Posté le 26-12-2007 à 23:54:17    

OR --> ||


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-12-2007 à 01:59:00    

Oui sans compter tout ce qui peut être à peut près équivalent à false en php... ET tout ce qui est à peut près équivalent à true...
 

Code :
  1. if( $a===false ||  $b===false)

Reply

Marsh Posté le 27-12-2007 à 14:23:48    

Juste un truc: or != ||. Ca fait la même chose, mais pas au même niveau. La précédence de or n'est pas la même que ||.
 
Si tu fais, la lecture ne sera pas la même :
 
$a = $x or $y; -> $a = ($a or $b);
$a = $x || $y; -> ($a = $x) || $y;
 
Dans la plupart des cas, c'est pareil car tu as des opérateurs de plus hautes précédences (==, &&, etc) mais dans ce cas là non.
 


---------------
La Bibliothèque de Neverwinter Nights
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed