В чем разница между <> и! =

В PHP для проверки неравноправия (без проверки типа) вы можете сделать это:

if( A != B ) { DO SOMETHING; } 

Но вы также можете сделать это, что имеет тот же результат:

 if( A <> B ) { DO SOMETHING; } 

Есть ли разница?

Использует ли != Over <> изменение оценки любым способом, формой или формой?

Забудьте о документации за минуту, давайте посмотрим исходный код. Начнем со сканера (lexer) :

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

Поэтому они анализируют один и тот же токен. Посмотрим на парсер :

 expr T_IS_NOT_EQUAL expr { zend_do_binary_op(ZEND_IS_NOT_EQUAL, &$$, &$1, &$3 TSRMLS_CC); } 

Итак, мы знаем, что код операции, который уволен, – ZEND_IS_NOT_EQUAL

Теперь давайте проверим операцию :

 static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE zval *result = &EX_T(opline->result.var).tmp_var; SAVE_OPLINE(); ZVAL_BOOL(result, fast_not_equal_function(result, opline->op1.zv, opline->op2.zv TSRMLS_CC)); CHECK_EXCEPTION(); ZEND_VM_NEXT_OPCODE(); } 

Так что в буквальном смысле нет разницы. Поскольку они анализируют один и тот же токен, они имеют точно такой же приоритет (поэтому документы являются неправильными или вводят в заблуждение). Поскольку они используют один и тот же исполнитель, и в процедуре opcode нет точки принятия решения, они выполняют идентичный код.

Так что да, <> и != На 100% взаимозаменяемы, и нет абсолютно никаких технических оснований для использования одного над другим.

С учетом сказанного, есть что-то важное, чтобы выиграть, будучи последовательным. Поэтому я бы рекомендовал просто придерживаться != И делать с ним …

редактировать

Я обновил документы, чтобы отразить это, и исправил еще одну проблему с порядком приоритета (++ и – имеет тот же приоритет, что и кастинг). Проверьте это на docs.php.net

Нет разницы.

Однако != Позволяет удобство более простого добавления дополнительного = для сравнения силового типа.

Один старый, новый.

согласно руководству :

 $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. 

использование != .

Меньшая разница: есть также порядок приоритета. Смотри сюда.

<> предшествует != в таблице приоритетов, но они выполняют ту же самую вещь.

Как упоминалось на веб-сайте документации , <> и != Являются просто синонимами. Это означает, что они полностью взаимозаменяемы. История php немного дикая, поэтому соглашения об именах, вплоть до того, как должны быть вызваны операторы, были и до сих пор не очень унифицированы.

Согласно руководству PHP: http://fr.php.net/manual/en/language.operators.comparison.php , похоже, это не имеет никакого значения.

Нет никакой разницы. Я предполагаю, что <> – это то, что было добавлено в более поздней версии php. Вид напоминает мне о Питоне. Я думаю, что то же самое с использованием AND или && для оператора и оператора

Это ничуть не отличается, но я думаю, что помню! = Был быстрее один раз, потому что я проверил тест и выяснил, что <> выполнял методы «diff» объектов, которые я сравнивал, что может быть медленнее, чем «сравнить "методы.