2009-08-11 3 views
8

mi è capitato di imbatterci in un pezzo di codice php e poteva vedere autore utilizzato <> per fare un non uguale a confronto:Perché PHP ha due "diverso da" operatori (= e <>!)

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

ho sempre usato !=:

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

Esistono circostanze particolari, quando dovrei usare <> sopra !=?

+1

mai saputo che si possa fare <> in php – dassouki

risposta

3

Credo che la <> operatore è stato implementato in PHP, perché è presente in alcune altre lingue (SQL, per esempio)

Sia <> e = media quasi esattamente la stessa cosa: il unica differenza sono riuscito a trovare è legato alla loro precedenza: vedi Operator Precedence: non sono sulla stessa linea ^^ (che significa che c'è una differenza, dopotutto, tra questi due)

Anche se, devo ammetto che ho n mai visto lo <> utilizzato in PHP.

Nota che le persone generalmente usano! =; probabilmente dovresti fare lo stesso: renderà il tuo codice più facile da capire.

E, btw, hai anche l'operatore! ==, che digita anche il confronto; ma non v'è alcuna < < >> operatore o qualcosa di simile ^^


Come riferimento: Comparison Operators

+0

Sono d'accordo con te su come rendere il codice più facile da capire. – TigerTiger

+0

In realtà, ho confessato: non ricordavo nemmeno che ci fosse un operatore <> in PHP ^^ Ho persino testato il tuo codice per assicurarmi che funzionasse ^^ Considerarlo in qualche codice sorgente sarebbe sicuramente strano! (Suppongo di averlo visto nel manuale molto tempo fa ... Ma non ricordavo nemmeno ^^) –

+1

Sono *** *** [sulla stessa riga] (http://php.net/ manuale/it/language.operators.precedence.php) (potrebbe essere che avevano una precedenza diversa quando hai risposto). –

4

Credo che quando PHP è stato sviluppato per la prima volta, uno degli obiettivi di progettazione era rendere flessibile il linguaggio, motivo per cui hanno introdotto ogni tipo di ciclo e ogni tipo di operatore che si potesse pensare.

<> è leggermente diverso da !=in terms of precedence categoria, ma gli operatori che vengono tra di loro significa che non vi è alcuna differenza pratica di sorta.

3

Buona domanda. Sono uguali, a parte una sottile differenza: <> has higher precedence than !=

Perché averli? Solo per far funzionare le cose come ci si potrebbe aspettare. PHP è un miscuglio di idee prese in prestito e in cui un programmatore C potrebbe preferire $foo != $bar, qualcuno con uno sfondo BASIC potrebbe trovare $foo <> $bar più facile all'occhio. Ognuno per il proprio!

+0

ah vedo .. almeno non v'è "un po ' "differenza. ;-) – TigerTiger