Разница между операторами «не равных» <> и! = В PHP
В PHP существует ли разница между операторами != И <> ?
В руководстве говорится:
$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.
Я думаю, что нет огромных различий, но мне любопытно.
6 Solutions collect form web for “Разница между операторами «не равных» <> и! = В PHP”
В основной реализации Zend нет никакой разницы. Вы можете получить его из описания Flex для сканера языка PHP:
<ST_IN_SCRIPTING>"!="|"<>" { return T_IS_NOT_EQUAL; }
Где T_IS_NOT_EQUAL – сгенерированный токен. Поэтому анализатор Bison не различает <> и != Токенов и рассматривает их одинаково:
%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
Поскольку в принятом ответе указывается, что реализация идентична, однако между ними есть небольшая разница в документации …
Согласно этой странице оператор <> имеет несколько более высокий приоритет, чем != .
Я не уверен, что это ошибка в реализации Zend, ошибка в документации или только один из тех случаев, когда PHP решает игнорировать правила приоритета.
Обновление: документация обновляется, и теперь больше нет разницы между <> и != .
Они одинаковые. Однако есть и операторы !== и === которые проверяют точное равенство, определяемое значением и типом.
<> означает больше или меньше. != означает не равную. Они в основном означают одно и то же.
Поскольку все говорят, что они идентичны, один из одного языка C-style / shell, один из некоторых других, включая MySQL, который был очень интегрирован в прошлом.
<> следует считать синтаксическим сахаром, синонимом для != который является правильным стилем PHP для неравного.
Далее подчеркивается функция идентификации тройного символа !== .
<> точно совпадает с оператором != так как оба они анализируются как токен T_IS_NOT_EQUAL .
И у них одинаковый приоритет .