Was ist der Unterschied zwischen =
, ==
und ===
?
Ich denke, ein Gleichheitszeichen bedeutet, eine Variable zu deklarieren, während zwei Gleichheitszeichen für eine Vergleichsbedingung und schließlich drei Gleichheitszeichen für den Vergleich von Werten deklarierter Variablen dienen.
php
comparison
operators
Erdbeere
quelle
quelle
=
Javascript verwendeten. Das gilt nicht nur für PHP, sondern auch für andere Sprachen.Antworten:
Sie haben
=
den Zuweisungsoperator ,==
den Vergleichsoperator 'gleich' und===
den Vergleichsoperator 'identisch' .Weitere Informationen zur Notwendigkeit
==
und===
zu den jeweiligen Situationen finden Sie in den Dokumenten .quelle
===
mit Objekten sagt Ihnen, ob sie das gleiche Objekt sind, nicht, ob sie den gleichen Inhalt haben.=
ist der Zuweisungsoperator==
ist der Vergleichsoperator (prüft, ob zwei Variablen gleiche Werte haben)===
ist der identische Vergleichsoperator (prüft, ob zwei Variablen gleiche Werte haben und vom gleichen Typ sind).quelle
= Zuweisungsoperator
== prüft, ob zwei Variablen den gleichen Wert haben
=== prüft, ob zwei Variablen den gleichen Wert haben UND ob ihre Typen gleich sind
quelle
Der Operator = weist den Wert einer Variablen zu. $ Six = 6; Der Wert 6 wird der Variablen $ six zugewiesen
== Operator prüft, ob der Wert beider Variablen gleich ist und meistens unter Bedingungen wie if-Anweisungen verwendet wird
=== Operator ähnlich == (prüfen Sie, ob der Wert gleich ist) und ob beide denselben Datentyp haben
// hier ist $ a vom Typ int, während $ b vom Typ string ist. Also hier die Ausgabe
quelle
Für fortgeschrittene PHP-Benutzer, die den Unterschied zwischen
==
und kennen===
und sich fragen: "Ist es schneller, mit==
oder zu vergleichen,===
wenn ich sicher bin, dass beide Operanden vom gleichen Typ sind?"Die kurze und allgemeine Antwort lautet: In diesen Fällen gibt es keinen Leistungsgewinn bei der Verwendung
===
, daher sollten Sie wahrscheinlich verwenden==
.Für diejenigen, die daran interessiert sind, es selbst zu vergleichen, können Sie den folgenden Code verwenden, den ich ad-hoc geschrieben habe, und verschiedene Werte für
$a
und ausprobieren$b
:HINWEIS: Der Vergleich ist nur gültig, wenn jeder "ERSTE VERSUCH" seinem "ZWEITEN VERSUCH" sehr nahe kommt. Wenn sie sich erheblich unterscheiden, bedeutet dies, dass der Prozessor während der Ausführung der Vergleiche etwas anderes getan hat. Daher sind die Ergebnisse unzuverlässig und der Benchmark sollte erneut ausgeführt werden.
quelle
==
oder===
die Ursache für Ihr Leistungsproblem sein möchten . IMO: Es ist besser, streng (===
) zu sein, es sei denn, Sie möchten explizit locker (==
) über Ihre Vergleiche sein. Die Anzahl der seltsamen"5 is not a number" == 5
Randfälle kann zu verrückten Fehlern führen.===
leidet nie unter diesem Problem.===
sie falsch liegen , wenn sie sich aus Leistungsgründen entscheiden. Programmierer können also frei wählen===
oder==
aus logischen Gründen, aber nicht aus Leistungsgründen: Es gibt verschiedene Fälle, in denen sie den einen oder anderen bevorzugen, und die Leistung darf überhaupt nicht berücksichtigt werden.