2009-08-11 1 views
8

я просто случайно наткнулся на кусок кода PHP и мог видеть, автор использовал <>, чтобы сделать не равно сравнения:Почему PHP есть два «не равно» операторы (= и <>!)

if ($variable <> "") { 
    echo "Hello, I am having some value"; 
} 

Я всегда использовал !=:

if ($variable != "") { 
    echo "Hello, I am having some value"; 
} 

существуют ли какие-либо особые обстоятельства, когда я должен использовать <> над !=?

+1

никогда не знал, что вы могли бы сделать <> в PHP – dassouki

ответ

3

Я думаю <> оператор был реализован в PHP, поскольку он присутствует в некоторых других языках (SQL, например)

И <> и = средняя почти точно так же: Единственное различие я сумел найти связано с их старшинства: см Operator Precedence: они не находятся на одной и той же линии ^^ (что означает, что есть разница, Afterall, между этими двумя)

Хотя, я должен признать, что у меня есть n когда-либо видели <>, используемые в PHP.

Обратите внимание, что люди обычно используют! =; вы, вероятно, должны сделать то же самое: это сделает ваш код более понятным.

И, кстати, у вас также есть оператор! ==, который также проводит сравнение типов; но нет < < >> оператор или что-нибудь подобное ^^


В качестве справки: Comparison Operators

+0

Я согласен с вами в том, что сделать код более понятным. – TigerTiger

+0

На самом деле, у меня есть тон признаться: я даже не помню, что в PHP был оператор <>.^Я даже проверил ваш код, чтобы убедиться, что он сработал.^Собственное его в каком-то исходном коде определенно будет странным! (Я полагаю, что давно видел это в руководстве ... Но даже не помнил ^^) –

+1

Они *** ***, [в той же строке] (http://php.net/ ручной/EN/language.operators.precedence.php) (возможно, они имели другой приоритет, когда вы ответили). –

4

Я считаю, что когда PHP был впервые разработан, одной из целей дизайна было сделать язык гибким, поэтому они ввели каждый тип цикла и каждый тип оператора, о котором вы могли бы подумать.

<> несколько отличается от категории !=in terms of precedence, но операторы, которые находятся между ними, означают, что практических различий вообще нет.

3

Хороший вопрос. Они одинаковы, кроме одной тонкой разницы: <> has higher precedence than !=

Почему они? Просто чтобы все работало, как вы ожидаете. PHP - это затмение заимствованных идей, и где программист C может предпочесть $foo != $bar, кто-то с базовым фоном может найти $foo <> $bar проще на глазу. Каждый к своим!

+0

ах я вижу .. по крайней мере, есть «некоторые "разница. ;-) – TigerTiger

Смежные вопросы