60 votes

Différence entre les opérateurs "non égaux" <> et! = En PHP

En PHP, existe-t-il une différence entre les opérateurs != et <> ?

Dans le manuel , il est indiqué:

 $a != $b    Not equal   TRUE if $a is not equal to $b after type juggling.
$a <> $b    Not equal   TRUE if $a is not equal to $b after type juggling.
 

Je suppose qu'il n'y a pas d'énormes différences mais je suis curieux.

66voto

Vitalii Fedorenko Points 17469

Dans les principaux Zend mise en œuvre il n'y a aucune différence, vous pouvez obtenir à partir de l' Flex description du langage PHP scanner:

<ST_IN_SCRIPTING>"!="|"<>" {
    return T_IS_NOT_EQUAL;
}

Où T_IS_NOT_EQUAL est le jeton généré. Ainsi, le Bison analyseur ne fait pas de distinction <>/!= les jetons et les traite de manière égale:

%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL
%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL

27voto

Mark Byers Points 318575

Comme la accepté de répondre à des points sur la mise en œuvre est identique, cependant il y a une différence subtile entre eux dans la documentation...

Selon cette page, l' <> opérateur est légèrement plus élevé l'emporte !=.

Je ne suis pas sûr si c'est un bug dans le Zend mise en œuvre, un bug dans la documentation, ou simplement un de ces cas où PHP décide d'ignorer les règles de priorité.

Mise à jour: La documentation est mise à jour et il n'y a plus aucune différence entre <> et !=.

8voto

Alex Points 3021

Ce sont les mêmes. Cependant, il existe également des opérateurs !== et === qui testent l'égalité exacte, définie par la valeur et le type.

6voto

utku.zih Points 2121

<> signifie plus grand ou plus petit. != signifie non égal. Ils signifient fondamentalement la même chose.

6voto

Orbling Points 13319

Comme tout le monde le dit, ils sont identiques, l'un d'une branche linguistique style C / style, l'un parmi d'autres, y compris MySQL, qui était hautement intégré par le passé.

<> devrait être considéré comme du sucre syntaxique, synonyme de != qui est le style PHP approprié pour non égal.

Souligné davantage par la fonction d'identité à trois caractères !== .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X