2009-12-04 3 views
6

continuo a vedere le variazioni di questo:php non è uguale a non è uguale, uguale a

Non uguale !=

Non uguale, uguale

!==

Quale è lo standard o hanno significati diversi?

sto indovinando quest'ultimo controlla anche il valore e il nome se si tratta di una stringa, mentre il ex potrebbe anche solo controllare il valore ...

risposta

19

== e != parità controllo per valore, e in PHP è possibile confrontare diversi tipi in cui certi valori si dicono equivalenti.

Ad esempio, "" == 0 restituisce true, anche se uno è una stringa e l'altro è un numero intero.

=== e !== controllare il tipo e il valore.

Quindi, "" === 0 valuterà a false.


Modifica: Per aggiungere un altro esempio di come questo "tipo-giocoleria" può prendere fuori, provate questo:

var_dump("123abc" == 123); 

bool(true)!

+0

Grazie ragazzi, per la risposta veloce, in modo da utilizzare! == == o semplicemente aggiunge un controllo per il tipo e il valore, grazie. – Newb

+2

PHP consente di convertire liberamente i valori da un tipo a un altro. Se converti una stringa "456" in un numero, verrà convertita in 456. Molto conveniente. L'operatore di confronto PHP == controlla solo il valore. Quindi, "" 456 "== 456'.Ora "" (stringa vuota) sarebbe uguale a 0, a FALSE e a NULL. Ma a volte non vuoi questo. Per verificare se qualcosa è FALSE invece di solo 0, puoi usare 'var === FALSE' – nash

+0

Operatore di confronto, solo valori di verifica (==), grazie – Newb

5

!= non è uguale per valore

!== non uguale in valore e tipo

6

Il secondo è di tipo rigoroso.

"1" != 1; // false 
"1" !== 1; // true because the first is a string, the second is a number 
1

in un esempio:

"2" == 2 -> true 

"2" === 2 -> false 


"2" !== 2 -> true 

"2" != 2 -> false 

questo è anche importante quando si utilizzano certi funzione che può tornare 0 o false

ad esempio strpos: hai sempre voglia di controllare i tipi di troppo lì, non solo valori. perché 0 == false ma 0 !== false.

dal strpos può restituire 0 se una stringa è nella prima posizione. ma non è lo stesso di false, il che significa che la stringa non è stata trovata.

+0

"2" è una stringa, quindi quando si utilizza == stiamo eseguendo entrambi i controlli per tipo e valore, quindi il risultato è true per il primo caso. Tuttavia, per il secondo caso il === lo rende più rigoroso (il tipo e il valore devono corrispondere); quindi, troviamo che la stringa "2" non sarà uguale al valore 2, interessante. – Newb

+0

Appena illuminato da Ben James, == controlla solo i valori. – Newb