Używałem wcześniej C++ i Java i nie mają tego operatora ===
.Dlaczego potrzebujemy tego specjalnego operatora ===?
Jak to się dzieje, że bez niego, ale w językach takich jak PHP jest kluczem.
Używałem wcześniej C++ i Java i nie mają tego operatora ===
.Dlaczego potrzebujemy tego specjalnego operatora ===?
Jak to się dzieje, że bez niego, ale w językach takich jak PHP jest kluczem.
Ponieważ PHP nie jest bezpiecznym typem. == porównuje 2 wartości, ale === porównuje wartości i sprawdza, czy ich typy klas są takie same.
Wierzę, że "2" == 2 zwraca wartość true, a "2" === 2 zwraca wartość false.
Właściwie equals
w Javie i ==
w języku C# działają jak ===
w php. To znaczy. "24".equals(24)
zwróci false.
Które java i C# nie mają odpowiednika to PHP ==
(tj. Operator/metoda taka, że "24".fuzzyEquals(24)
zwróci wartość true). A to dlatego, że C# i Java są silnie typowane, a taki operator byłby sprzeczny z ich filozofią.
Tak, jak wiesz, jest to to samo w JavaScript i zgodnie z JSLint powinno być ZAWSZE używane jako sprawdzanie typu, co technicznie sprawia, że == redundantne. Ale myślę, że to tylko osobiste preferencje
kiedy mówimy „A jest równe B” może to oznaczać kilka zupełnie różnych rzeczy
itp
większość języków mają różnych operatorów lub funkcji dla różnych rodzajów równości zobaczyć http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality
Patrz: http://php.net/manual/en/language.operators.comparison.php – NullUserException