[supersaibal]Originariamente inviato da bonaprogram
se usi == il valore ha bisogno di essere solo uguale nel contenuto, mentre === ha bisogno di essere uguale anche nel tipo di variabile per restituire TRUE

esempio

se fai

if ( 0 == "0" )
{
// Restituisce true perke tutti è due sono 0
}

if ( 0 === "0")
{
// Invece qui restituisce False poiche, anche essende tutti e due 0, sono di tipo diverso
// Il primo è di tipo int , mentre il secondo e di tipo stringa
} [/supersaibal]
scusa, ma è impreciso :-P

il valore deve essere uguale "dopo l'eventuale casting di tipo"

0 è un interger
"0" la stringa del solo carattere 0
"" è la stringa vuota
NULL è il tipo che indica un valore non impostato
FALSE è il valore booleano
"FALSE" è la stringa

tutti questi valori vengono castati (trasformati nel tipo ) in FALSE quindi dire 0=="0" è come dire FALSE==FALSE .. perchè == è un operatore booleano e quindi il casting avviene a bool e non a int o a stringa.

usare === significa evitare il casting implicito (type juggling) e quindi

0 === "0"

non è "vero" perchè 0 come intero non è uguale alla stringa "0"

:-)