Farklı "eşit değil" 2 olmasının nedeni nedir

5 Cevap php

Ben sadece php kodu bir parça tökezledi ve kullanılan yazar <> karşılaştırmak için eşit değildir yapmak görebiliyordu oldu:

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

Ben her zaman kullanılır != adres:

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

!= içinde ben kullanmanız gereken herhangi bir özel durumlar, <> var mı?

5 Cevap

Ben bazı diğer dillerde mevcut olduğundan <> operatörü PHP uygulamaya konmuştur sanırım (SQL, for instance)

Hem <> ve ortalama = almost tam olarak aynı: ben bulmayı başardım tek fark onların önceliği ile ilgilidir: bakın Operator Precedence: Onlar aynı hat üzerinde değildir ^ ^ (which means there's a difference, afterall, between those two)

Olsa, ben <> PHP kullanılan görmedim itiraf etmeliyim.

Insanlar genellikle kullandığını unutmayın =!; muhtemelen aynı şeyi yapmalıdır: anlamak için kod kolaylaştıracaktır.

! Ve btw, ayrıca çok karşılaştırma yazın yapar == operatörü, var; ama hiçbir << >> operatör veya böyle bir şey ^ ^ var


As a reference : Comparison Operators

PHP ilk geliştirildiği zaman, tasarım amaçlarından biri de her döngü tipi ve belki aklınıza gelebilecek her operatör tipine getirilen neden olan, dili esnek yapmak olduğuna inanıyorum.

<> != in terms of precedence kategori biraz daha farklı, ama aralarında gelmek operatörler hiçbir pratik fark yoktur demektir.

İyi bir soru. Onlar aynı, ayrı bir ince farkı: <> has higher precedence than !=

Neden onları var? Sadece işler beklediğinizden nasıl iş yapmak için. PHP ödünç fikir miş-mash, ve nerede bir C programcısı bir BASIC arka plan göz $foo <> $bar daha kolay bulabilirsiniz ile $foo != $bar, birini tercih edebilirsiniz. Her biri kendi!

Onlar çok yakın, ama biraz different precedences, ama ben yararlı olacağını her zaman göremiyorum.

<> her ikisi T_IS_NOT_EQUAL belirteci olarak çözümlenir beri != operatörü tam olarak aynıdır.