Hängt davon ab, was zwischen diesen beiden Aufrufen passiert. Ansonsten ja, das sind die gleichen. Die Reihenfolge macht keinen Unterschied. Wenn 2 gleichbedeutend ist ==
Eine Zeichenfolge von 1 und eine Ganzzahl von 1 werden im Vergleich mit true zurückgegeben. Type wird ignoriert, nur der Wert wird verglichen. Also keine Miefigkeit.
Ausgaben: 1
BEARBEITEN
Um klarzustellen, es gibt absolut nichts, was Sie jemals in $ a oder $ b eingeben können, um eine andere Ausgabe für den Vergleich zu erhalten, indem Sie es einfach auf die andere Seite des Bedieners legen.
%Vor%Die Ausgabe von diesem, für irgendwelche $ a oder $ b Werte, wird immer ohne Zweifel wahr wahr oder falsch falsch sein.
Kurz gesagt, ja. $a == $b
entspricht immer $b == $a
. Es gibt einige kurze Kommen, wie zum Beispiel Schwimmer. Natürlich sollten Sie nicht zwei float für Gleichheit verschachteln.
BEARBEITEN
In Bezug auf Schwimmer: Wenn Sie zwei Schwimmer haben und diese vergleichen, sollten sie technisch identisch sein. Gleitkommawerte, die den gleichen Wert zu haben scheinen, müssen jedoch nicht identisch sein. Wenn $a
also ein Literal .69
ist und $b
das Ergebnis einer Berechnung ist, können sie sehr unterschiedlich sein, aber beide zeigen denselben Wert an. Deshalb sollten Sie Gleitkommawerte niemals mit dem ==
vergleichen.
Wenn Sie Floating-Point-Werte vergleichen müssen, müssen Sie in Ihrem speziellen Fall wirklich den kleinsten akzeptablen Unterschied verwenden. So etwas würde funktionieren, um Floats zu vergleichen (indem wir unsere kleinste akzeptable Differenz bei 0.000001
setzen):
Der einzige Typ, den ich anders sehen könnte, ist etwa:
%Vor%Um zu sehen warum, schau es dir an
%Vor% Wenn A
zuerst ausgeführt wird, ist das Ergebnis 2
und das Ergebnis von B
ist 2, also sind sie gleich und der Test wird true
sein.
Wenn B
zuerst ausgeführt wird, ist das Ergebnis 1
und das Ergebnis von B
ist 2, also sind sie nicht gleich und der Test wird false
sein.
Aber für jeden einzelnen Typvergleich (wobei A
eine Variable und kein Ausdruck ist) wird es immer reflexiv sein.
Also ist A == B
im allgemeinen Sinne nicht immer 100% äquivalent zu B == A
. Für Variablen ist es immer gleichwertig. Aber für komplexe Ausdrücke, die die Zuweisung oder Änderung von Variablen beinhalten, ist dies möglicherweise nicht der Fall.
Es gibt verschiedene Operatoren, die Sie verwenden können, wenn Sie im Vergleich den Typ Casting berücksichtigen möchten. ==
wird bei gleichem Wert als wahr ausgewertet, vergleicht jedoch nicht den Datentyp. ===
wird als wahr ausgewertet, wenn die Werte gleich sind wie auch die Datentypen. Die Verwendung von Letzterem berücksichtigt Typ-Casting, wo es normalerweise ignoriert würde (zB: String, der eine Ganzzahl und eine ganze Zahl darstellt, die verglichen werden.)
Die Reihenfolge der Logik in der Bedingung sollte keinen Unterschied machen.
Tags und Links php comparison equals-operator