В 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» объектов, которые я сравнивал, что может быть медленнее, чем «сравнить "методы.