Reputation: 40717
In PHP, is there any difference between the !=
and <>
operators?
In the manual, it states:
$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.
I guess there are no huge differences but I'm curious.
Upvotes: 67
Views: 11781
Reputation: 29463
The operators <>
and !=
are the same.
However, as a matter of style, I prefer to use <>
when dealing with numerical variables.
That is, if:
$a
is an integer$b
is an integerinstead of asking:
// if $a is not equal to $b
if ($a != $b)
I will ask:
// if $a is either less than or greater than $b
if ($a <> $b)
This is a visual hint / reminder in my code that $a
and $b
are definitely both intended to be numerical rather than one or both being intentionally strings
.
Upvotes: 3
Reputation: 114480
In the main Zend implementation there is not any difference. You can get it from the Flex description of the PHP language scanner:
<ST_IN_SCRIPTING>"!="|"<>" {
return T_IS_NOT_EQUAL;
}
Where T_IS_NOT_EQUAL
is the generated token. So the Bison parser does not distinguish between <>
and !=
tokens and treats them equally:
%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
Upvotes: 69
Reputation: 20602
As everyone is saying they are identical, one from one language branch C-style/shell, one from some others including MySQL which was highly integrated in the past.
<>
should be considered syntactic sugar, a synonym for !=
which is the proper PHP style for not-equal.
Further emphasised by the triple character identity function !==
.
Upvotes: 6
Reputation: 4873
<>
means either bigger or smaller. !=
means not equal. They basically mean the same thing.
Upvotes: 7
Reputation: 3652
They are the same. However there are also !==
and ===
operators which test for exact equality, defined by value and type.
Upvotes: 9