2009-08-11 14 views
8

Ben sadece bir parça php kodu üzerine tökezledim ve yazarın <>'i karşılaştırmaya eşit olmayan bir şekilde yapabildiğini görebiliyordu:PHP'nin neden iki "olmayan" işleçleri var (! = Ve <>)

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

Ben her zaman != kullandım:

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

Herhangi bir özel var mı <>'yi != üzerinden kullanmam gerektiğinde

+1

Eğer php> dassouki

cevap

3

Ben bazı diğer dillerde mevcut olduğu için <> operatörü

Hem <> ve = neredeyse aynı anlama (SQL örneğin) PHP'de uygulamaya konmuştur tahmin: onların öncelik ilişkilidir bulmak için idare ettik tek fark: Operator Precedence görür: mecbur,

olsa (bu iki arasında bir fark var demektir, afterall) aynı hat ^^ bulunmayan itiraf etmeliyim PHP'de kullanılan <> 'u gördünüz.

Not: Genellikle insanlar kullanın! =; Muhtemelen aynı şeyi yapmalısınız: kodunuzu daha kolay anlayacaktır.

Ayrıca, btw, siz de yazım karşılaştırması yapan! == işlecine sahipsiniz; ancak bir referans olarak o ^^


gibi hiçbir < < >> operatör ya da bir şey vardır: Comparison Operators

+0

Anladığım kadarıyla, anlaşılması daha kolay anlaşılır. – TigerTiger

+0

Aslında, itiraf etmeliyim: Hatta PHP'de bir <> operatörü olduğunu bile hatırlamadım^Hatta kodun test edilmesini sağlamak için bile ^^ test ettim. Bazı kaynak kodlarında onu kesinlikle garip hissedecektim! (Sanırım el kitabında uzun zaman önce görmüştüm ... Ama ^^ hatırlamadım bile) –

+1

*** Onlar *** [aynı hat üzerinde] (http://php.net/ manuel/tr/language.operators.precedence.php) (cevap verdiğinizde farklı öncelikleri olabilir). –

4

PHP'nin ilk geliştirildiği zaman, tasarım hedeflerinden birinin dili esnek hale getirmesi gerektiğine inanıyorum, bu yüzden her döngü tipini ve aklınıza gelebilecek her operatör tipini getirdiler.

<>, !=in terms of precedence kategorisinden biraz farklıdır, ancak aralarında gelen operatörler, pratik bir farkın olmadığı anlamına gelir.

3

İyi soru. Bunlar, ince bir farkın dışında, aynıdır: <> has higher precedence than !=

Neden bunlar var? Sadece işlerin nasıl olabileceğini işleyebilmek için. PHP, ödünç alınan fikirlerin ustalığıdır ve bir C programcısı, $foo != $bar'u tercih ederse, BASIC arka planına sahip birisi, $foo <> $bar gözünü daha kolay bulabilir. Her biri kendi!

+0

ah yapabileceğini bilmiyordum .. en azından bazı" var "fark. ;-) – TigerTiger

İlgili konular