Ho già usato C++ e Java e non hanno questo operatore ===
.Perché abbiamo bisogno di questo speciale operatore ===?
Come mai ci riescono, ma in lingue come PHP è la chiave.
Ho già usato C++ e Java e non hanno questo operatore ===
.Perché abbiamo bisogno di questo speciale operatore ===?
Come mai ci riescono, ma in lingue come PHP è la chiave.
Perché PHP non è sicuro. == confronta 2 valori, ma === confronta i valori E controlla se i loro tipi di classe sono gli stessi.
Credo "2" == 2 restituisce true, mentre "2" === 2 restituisce false.
In realtà equals
in Java e ==
in C# come ===
fa in php. Cioè "24".equals(24)
restituirà false.
Ciò che java e C# non hanno un equivalente di PHP è ==
(ovvero un operatore/metodo tale che "24".fuzzyEquals(24)
restituisce true). E questo perché C# e Java sono fortemente tipizzati e tale operatore sarebbe contrario alla loro filosofia.
Solo così si sa, questo è lo stesso in JavaScript e secondo JSLint dovrebbe SEMPRE essere usato come un controllo di tipo, che tecnicamente rende == ridondante. Ma credo che sia una preferenza personale
quando diciamo "A è uguale a B" questo può significare diverse cose del tutto diverse
ecc
maggior parte delle lingue hanno operatori o funzioni diverse per diversi tipi di uguaglianza, vedere http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality
See: http://php.net/manual/en/language.operators.comparison.php – NullUserException