Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen den Vergleichsoperatoren Gleichheit (==doppeltes Gleichheitszeichen) und Identität (===dreifaches Gleichheitszeichen) von PHP?

Was ist der Unterschied zwischen den Vergleichsoperatoren Gleichheit (==doppeltes Gleichheitszeichen) und Identität (===dreifaches Gleichheitszeichen) von PHP?

WBOY
WBOYnach vorne
2023-09-07 17:45:081399Durchsuche

Was ist der Unterschied zwischen den Vergleichsoperatoren Gleichheit (==doppeltes Gleichheitszeichen) und Identität (===dreifaches Gleichheitszeichen) von PHP?

In PHP sind Double Equals (==) und Triple Equals (===) Vergleichsoperatoren, die zum Vergleichen von Werten auf Gleichheit verwendet werden. Sie unterscheiden sich jedoch in ihrem Verhalten und der Genauigkeit des Vergleichsprozesses.

Doppelt gleich (==)

Der Double-Equals-Operator prüft die Gleichheit zwischen zwei Werten, führt jedoch eine Typerzwingung durch, wenn die beiden Werte unterschiedliche Datentypen haben. Das bedeutet, dass PHP versucht, den Wert in einen generischen Typ umzuwandeln, bevor der Vergleich durchgeführt wird. Hier sind einige wichtige Punkte zum Doppel-Gleichheits-Operator:

  • Wenn zwei Werte den gleichen Typ haben, verhält es sich wie der dreifache Gleichheitsoperator (strenger Vergleich).

  • Wenn zwei Werte unterschiedliche Typen haben, versucht PHP, sie in einen gemeinsamen Typ umzuwandeln. Wenn Sie beispielsweise eine Ganzzahl und eine Zeichenfolge vergleichen, versucht PHP, die Zeichenfolge in eine Ganzzahl umzuwandeln.

  • Numerische Zeichenfolgen werden im Vergleich zu Ganzzahlen oder Gleitkommazahlen automatisch in Zahlen umgewandelt.

  • Boolesche Werte werden als ganze Zahlen verglichen (wahr ist 1, falsch ist 0).

  • Null wird als gleich der leeren Zeichenfolge, dem leeren Array oder Null behandelt.

  • Arrays und Objekte werden nicht anhand ihres Inhalts, sondern anhand ihrer Identität verglichen.

Beispiel 1

<?php
$value1 = 5;
$value2 = "5";


if ($value1 == $value2) {
   echo "Equal";
} else {
   echo "Not Equal";
}
?>

Ausgabe

Equal

Anleitung

Der Double-Equals-Operator führt eine Typumwandlung durch, sodass die Zeichenfolge „5“ in die Ganzzahl 5 konvertiert wird und der Vergleich „true“ zurückgibt.

Beispiel 2

<?php
$value1 = 5;

$value2 = "5.0";

if ($value1 == $value2) {
   echo "Equal";
} else {
   echo "Not Equal";
}
?>

Ausgabe

Equal

Anleitung

Der Double-Equals-Operator führt eine Typerzwingung durch. Die Zeichenfolge „5.0“ wird in die Gleitkommazahl 5.0 umgewandelt und der Vergleich gibt „true“ zurück.

Dreifaches Gleichheitszeichen (===)

Der dreifache Gleichheitsoperator, auch Identitätsoperator genannt, führt einen strengen Vergleich zwischen zwei Werten durch. Es prüft Wert und Typgleichheit, ohne Typerzwingung durchzuführen. Der Dreifach-Gleichheits-Operator ist strenger und wird im Allgemeinen als sicherer angesehen, da er unerwartete oder unerwartete Typkonvertierungen vermeidet. Hier sind einige wichtige Punkte zum Dreifach-Gleichheits-Operator:

  • Es gibt nur dann true zurück, wenn die beiden verglichenen Werte denselben Typ und denselben Wert haben.

  • Der Operator gibt false zurück, wenn die Typen unterschiedlich sind oder wenn ein Wert nicht in den Typ des anderen Werts umgewandelt werden kann.

  • Vor dem Vergleich wird keine Typkonvertierung oder -umwandlung durchgeführt.

  • Dies wird normalerweise beim Vergleichen von Werten bevorzugt, bei denen Typintegrität wichtig ist.

Beispiel 1

<?php
$value1 = 5;
$value2 = "5";

if ($value1 === $value2) {
   echo "Equal";
} 
else {
   echo "Not Equal";
}
?>

Ausgabe

Not Equal

Anleitung

Der Dreifach-Gleichheits-Operator führt einen strengen Vergleich durch, der sowohl Wert als auch Typ berücksichtigt. Da $value1 eine Ganzzahl und $value2 eine Zeichenfolge ist, werden sie nicht als gleich betrachtet.

Beispiel 2

<?php
$value1 = 10;
$value2 = 10;

if ($value1 === $value2) {
   echo "Equal";
} else {
   echo "Not Equal";
}
?>

Ausgabe

Equal

Anleitung

Da $value1 und $value2 beide ganze Zahlen mit dem gleichen Wert 10 sind, gibt ein strenger Vergleich mit === „true“ zurück und „Gleich“ wird als Ausgabe wiedergegeben.

Fazit

In PHP ist das Vergleichsverhalten der Operatoren „Double-Equals“ (==) und „Triple-Equals“ (===) unterschiedlich. Double equal erzwingt eine lockere Gleichheitsprüfung nach Typ und versucht, den Wert vor dem Vergleich in einen gemeinsamen Typ umzuwandeln. Im Gegensatz dazu führt Triple Equals eine strikte Gleichheitsprüfung ohne Typzwang durch und berücksichtigt dabei sowohl Wert als auch Typ. Das Zeichen der dritten Ebene wird im Allgemeinen wegen seiner Zuverlässigkeit und Vorhersehbarkeit bevorzugt. Es hilft, unerwartetes Verhalten zu verhindern, das durch unbeabsichtigte Typkonvertierungen verursacht wird. Das Verständnis dieser Unterschiede ermöglicht es Entwicklern, den geeigneten Operator basierend auf den gewünschten Vergleichsanforderungen auszuwählen und die Codegenauigkeit aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den Vergleichsoperatoren Gleichheit (==doppeltes Gleichheitszeichen) und Identität (===dreifaches Gleichheitszeichen) von PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:fscanf()-Funktion in PHPNächster Artikel:fscanf()-Funktion in PHP