PHP Unterschied zwischen == und ===

Seit PHP4 gibt es die Möglichkeit einen typsicheren Vergleich durchzuführen, dazu wird einfach ein weiterer Vergleichsoperator “=” angehängt. Neben dem reinen Wert wird somit auch der Typ verglichen, wodurch die Typ-Sicherheit verbessert wird. Das folgende PHP-Beispiel erscheint zwar trivial und soll zunächst nur mal den Unterschied verdeutlichen. Wichtig ist ein typsicherer Vergleich bei der Verwendung von eigenen Objekten und Validierung von Benutzereingaben.

<?php

$a = 1; // int
$b = "1"; // string

var_dump($a);
var_dump($b);

if($a == $b){
	echo "Typ-unsicher!";
}

echo "\n";

if($a === $b){
	
}else{
	echo "Typ-sicher!";	
}

Die Ausgabe ist:

int(1)
string(1) "1"
Typ-unsicher!
Typ-sicher!

PHP typsicherer Vergleich: Ungleich und doch gleich

Die Erweiterung der Vergleichsoperatoren um Typsicherheit ist auch bei weiteren Vergleichen möglich, wie bspw. ungleich:

if($a != $b){

}else{
	echo "A ist gleich B";
}

if($a !== $b){
	echo "A ist ungleich B";
}

Dieses Beispiel verdeutlicht nochmals was Typsicherheit bedeutet, A hat zwar den selben Wert wie B, aber die Variablen sind nicht vom selben Typ.

Eine Übersicht für alle PHP Vergleichsoperatoren gibt es bei PHP.net

Leave a Reply

Your email address will not be published. Required fields are marked *