2010-09-19 4 views
1

Oui, c'est juste une question sur laquelle j'aimerais avoir une réponse. Je l'ai vécu deux ou trois fois où ceci:

if(!$one == $two){ echo "Not the same"; }else{ echo "The same"; } 

ne fonctionnera pas, et

if($one == $two){ echo "The same"; }else{ echo "Not the same"; } 

travaillerai.

Pourquoi ça ne marche pas parfois? J'ai toujours besoin de recoder comme le second, quand le premier ne fonctionne pas.

Répondre

5

! est d'avoir plus precedence que == vous devez donc utiliser entre parenthèses comme:

if(!($one == $two)) 
1

Vous avez besoin

if(!($one == $two)) 

En effet, sans les crochets, il vérifie si $ one est faux et vérifie ensuite si $ two == $ one. Ce qui suit est la seule fois où cela fonctionnera sans les crochets. Évaluation à if (true == true) as! $ One = true.

$one = false; 
$two = true; 

if (!$one == $two) 
{ 
    echo "different"; 
}