2009-07-16 2 views
8

C'è una differenza tra !== e != in PHP?C'è una differenza tra! == e! = In PHP?

+6

domanda Molto spesso duplicati, a seconda di come si cerca la risposta: http://stackoverflow.com/questions/80646/how-do-the-equality-and-identity-comparison-operators- differire – spoulson

risposta

25

L'operatore != confronta il valore, mentre l'operatore !== confronta anche il tipo.

Ciò significa questo:!

var_dump(5!="5"); // bool(false) 
var_dump(5!=="5"); // bool(true), because "5" and 5 are of different types 
+0

null! = "null" non è falso, esempio errato. Anche echo stampa 1 per bool (vero) e niente per bool (falso). L'output effettivo dello snippet di codice è 11. – VolkerK

+0

@VolkerK - Non ho un interprete PHP davanti a me, ma si spera che questo sia un esempio più accurato. :-) –

+0

Il mio errore. Grazie per la modifica, Ben Blank. Spero che il poster originale non si sia confuso. – Salty

3

== controlli tipo così come il valore, = controlla solo apprezzano

$num = 5 

if ($num == "5") // true, since both contain 5 
if ($num === "5") // false, since "5" is not the same type as 5, (string vs int) 
7

!= è l'inverso dell'operatore ==, che verifica l'uguaglianza di tutti tipi

!== è l'inverso dell'operatore ===, che controlla l'uguaglianza solo per le cose dello stesso genere.

+0

vedi anche http://ca2.php.net/manual/nl/language.operators.comparison.php – txwikinger

2

=== viene chiamato l'operatore di identità. E viene discusso a lungo nelle risposte di altre domande.

Anche le risposte degli altri qui sono corrette.

4

!= è per "non uguale", mentre !== è per "non identico". Ad esempio:

'1' != 1 # evaluates to false, because '1' equals 1 
'1' !== 1 # evaluates to true, because '1' is of a different type than 1 
1

L'operatore != restituisce true, se i suoi due operandi hanno valori diversi.

L'operatore !== restituisce true, se i suoi due operandi hanno valori diversi o se sono di tipi diversi.

applausi