Différence entre les opérateurs "non égaux" et!= en PHP

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

Dans le manuel , Il est écrit:

$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 de différences énormes mais je suis curieux.

50
demandé sur Pang 2010-11-28 02:52:50

6 réponses

Dans l'implémentation principale de Zend, il n'y a pas de différence. Vous pouvez l'obtenir à partir de la Flex description du langage PHP scanner:

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

T_IS_NOT_EQUAL est le jeton généré. Donc le Bison l'analyseur ne fait pas la distinction entre les jetons <> et != et les traite également:

%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
58
répondu Vitalii Fedorenko 2016-05-24 19:21:35

Comme le souligne la réponse acceptée, l'implémentation est identique, mais il existe une différence subtile entre eux dans la documentation ...

Selon cette page l'opérateur <> a une priorité légèrement supérieure à !=.

Je ne suis pas sûr qu'il s'agisse d'un bug dans L'implémentation de Zend, d'un bug dans la documentation, ou juste d'un de ces cas où PHP décide d'ignorer les règles de priorité.

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

22
répondu Mark Byers 2012-11-06 14:07:19

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

8
répondu Alex 2010-11-27 23:54:30

<> signifie soit plus grand ou plus petit. != signifie pas égal. Ils signifient essentiellement la même chose.

6
répondu Utku Zihnioglu 2010-11-28 00:00:07

Comme tout le monde dit qu'ils sont identiques, un d'une branche de langage C-style/shell, un de quelques autres y compris MySQL qui était hautement intégré dans le passé.

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

Accentuée par la fonction d'identité à Trois Caractères !==.

5
répondu Orbling 2010-11-28 02:14:07

<> est exactement le même que l'opérateur != puisque les deux sont analysés en tant que jeton T_IS_NOT_EQUAL.

Et ils ont la même priorité.

2
répondu Salman A 2014-11-26 07:51:12