55 Stimmen

Unterschied zwischen zwei und drei Gleichheitszeichen bei Vergleichen

Frage von Gast | 07.01.2012 um 10:20

Ich habe neulich in einem Script einen Vergleich mit drei Gleichheitszeichen gefunden. Sonst sind mir aber immer nur zwei Gleichheitszeichen bekannt gewesen. 

Meinen Tests zufolge macht es keinen Unterschied, ob man zwei oder drei Gleichheitszeichen nimmt. Was soll das ganze also?

AntwortenPositivNegativ
Avatar
9Beste Antwort9 Stimmen

Sowohl == als auch === sind beides Vergleichsoperatoren. 

Zwei Gleichheitszeichen schauen allerdings nur nach, ob die beiden verglichenen Variablen die gleichen Werte enthalten. 

Drei Gleichheitszeichen dagegen überprüfen einerseits, ob die beiden Variablen die gleichen Werte enthalten und andererseits, ob auch die Typen der beiden Variablen identisch sind. 

Dazu mal ein Beispiel:

//3 Variablen mit identischen Werten
$a = 10;
$b = 10;
$c = 10;

//$a und $b vom Typ integer; $c vom Typ double
settype($a, integer);
settype($b, integer);
settype($c, double);

//Vergleich der Werte
if ($a == $b) {}  //true
if ($a == $c) {}  //true
if ($a === $b) {} //true
if ($a === $c) {} //false 

Wir definieren 3 Variablen mit identischen Werten und casten die Variablen danach auf die Typen Integer oder Double. Anschließend vergleichen wir die Variablen paarweise.

Beim Vergleich mit den zwei Gleichheitszeichen bekommen wir jedes mal true heraus. Bei den drei Gleichheitszeichen bekommen wir nur true, wenn auch die Typen stimmen.
08.01.2012 um 19:06

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.