2010-09-20 13 views

Antwort

3

Da PHP nicht sicher geben. == vergleicht 2 Werte, aber === vergleicht die Werte UND prüft, ob ihre Klassentypen identisch sind.

Ich glaube, "2" == 2 gibt true zurück, während "2" === 2 false zurück.

10

Eigentlich equals in Java und == in C# wie === funktioniert in PHP. I.e. "24".equals(24) gibt false zurück.

Was Java und C# kein Äquivalent haben, ist PHP == (d. H. Ein Operator/Methode, so dass "24".fuzzyEquals(24) würde True zurückgegeben). Und das liegt daran, dass C# und Java stark typisiert sind und solch ein Betreiber gegen ihre Philosophie wäre.

0

Nur damit Sie wissen, ist dies das gleiche in JavaScript und nach JSLint sollte immer als Typprüfung verwendet werden, die technisch macht == überflüssig. Aber ich denke, das ist nur eine persönliche Vorliebe

2

, wenn wir sagen: „A ist gleich B“ dies mehrere ganz unterschiedliche Dinge bedeuten kann

  • A und B sind die gleiche Sache
  • A und B haben die gleiche Wert, das heißt, die Werte für einen dritten nicht unterscheidbar sind
  • A und B (oder Zahlen) in Zeichenketten umgewandelt werden, die
  • A und B haben die gleichen Hashwert
gleich sind

etc

meisten Sprachen haben verschiedene Operatoren oder Funktionen für verschiedene Arten von Gleichheit haben, http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality