PHP Schnellstart – Vergleichsoperatoren

In dieser Lektion lernst du, wie du Vergleichsoperatoren einsetzen kannst, um mehr Kontrolle über deine Skripte zu bekommen. Starten wir wieder mit der wichtigsten Frage:

Was sind Vergleichsoperatoren?

Vergleichsoperatoren gehören zu den wichtigsten Komponenten von Programmiersprachen, so auch PHP.

Vereinfacht gesagt erlauben sie Dir damit, zwei Werte miteinander zu vergleichen und bspw. eine Aussage dazu zu bekommen, ob zwei Variablen den gleichen Wert besitzen. Sofern nicht anders angegeben, kannst Du die Vergleichsoperatoren sowohl für Zahlenwerte, als auch auch für Zeichenketten (Strings) verwenden.

Benutzt Du einen Vergleichsoperator, bekommst Du immer ein eindeutiges Ergebnis zurück. Ist die Bedingung oder der Vergleich erfüllt, ist das Ergebnis TRUE, ansonsten FALSE. Nachfolgend stellen wir die verschiedenen Vergleichoperatoren samt Beispiel aus der Praxis vor.

Welche Operatoren kennt PHP?

PHP bietet die folgenden Operatoren zum Vergleich an:

== (gleich)

Gibt TRUE zurück, wenn die beiden miteinander verglichenen Werte identisch sind.


$nummer1 = 34;
$nummer2 = 17 * 2;
$nummer1 == $nummer2; // True, da beide Werte 34 ergeben

!= (ungleich)

Gibt TRUE zurück, wenn die beiden miteinander verglichenen Werte nicht identisch sind.


$stadt1 = "Paris";
$stadt2 = "London";
$stadt1 != $stadt2;   // True, da beide Orte nicht identisch ($stadt1 vs. $stadt2)

< (kleiner als)

Gibt TRUE zurück, wenn der Wert auf der linken Seite des Vergleichs kleiner als der Wert auf der rechten Seite des Vergleichs ist.


$summe1 = 47;
$summe2 = 34;
$summe1 < $summe2; // False, da der linke Wert ($summe1) kleiner ist als der rechte Wert ($summe2)

> (größer als)

Gibt TRUE zurück, wenn der Wert auf der linken Seite des Vergleichs größer als der Wert auf der rechten Seite des Vergleichs ist.


$summe1 = 50;
$summe2 = 34;
$summe1 > $summe2; // True, da der linke Wert (50) größer ist als der rechte Wert (34)

<= (kleiner als oder gleich)

Gibt TRUE zurück, wenn der Wert auf der linken Seite des Vergleichs gleichgroß oder kleiner als der Wert auf der rechten Seite des Vergleichs ist.


$plz1 = 10247;
$plz2 = 10247;
$plz1 <= $plz2; // True, da der linke Wert ($plz1) kleiner als oder gleich dem rechten Wert ($plz2) ist.

>= (größer als oder gleich)

Gibt TRUE zurück, wenn der Wert auf der linken Seite des Vergleichs gleichgroß oder größer als der Wert auf der rechten Seite des Vergleichs ist.


$plz1 = 10249;
$plz2 = 10247;
$plz1 >= $plz2; // Der linke Wert ($plz1) ist größer als oder gleich dem rechten Wert ($plz2)

<=> (kleiner als, gleich oder größer als 0)

Dieser Operator wurde mit der Version 7 von PHP eingeführt. Ein Vergleich von zwei Zahlenwerten liefert die folgenden Werte zurück:

  • 0, wenn beide Zahlenwerte identisch sind
  • 1, wenn der Zahlenwert auf der linken Seite größer als der Zahlenwert auf der rechten Seite ist, und
  • -1, wenn der Zahlenwert auf der rechten Seite größer als der Zahlenwert auf der linken Seite ist.

Dieses Beispiel zeigt den Vergleich von zwei Zahlenwerten. Ergebnis ist 1, da 10247 größer als 10117 ist.


$plz1 = 10247;
$plz2 = 10117;
echo $plz1 $plz2; // gibt 1 aus

Ähnlich funktioniert das auch mit Zeichenketten. Der erste Vergleich liefert -1, da sich a vor b im Zeichensatz befindet, also kleiner ist. Der zweite Vergleich liefert hingegen 1.


echo "a" "b"; // gibt -1 aus
echo "b" "a"; // gibt 1 aus

Das dritte Beispiel zeigt den Vergleich zweier Arrays oder Listen. Das Ergebnis ist 0, wenn beide Arrays identisch sind. In der ersten Zeile werden zwei leere Arrays miteinander verglichen und in der zweiten Zeile zwei Arrays mit den gleichen Werten.


echo [] []; // 0
echo [3, 4, 5] [3, 4, 5]; // 0

== Welche Operatoren mit Typvergleich kennt PHP? ==

Die folgenden beiden Operatoren gehen über das hinaus, was die oben vorgestellen Operatoren leisten. Zusätzlich zum Vergleich der Werte prüfen sie, ob beide Variablen den gleichen Variablentyp besitzen.

=== (gleich mit Typprüfung)

Gibt TRUE zurück, wenn der Wert auf der linken Seite gleich dem Wert auf der rechten Seite ist und beide Variablen denselben Typ haben. Die erste Zeile vergleicht eine Ganzzahl (Integer) mit einer Fließkommazahl, was zum Ergebnis FALSE führt. Der zweite Vergleich stellt sicher, dass zwei Fließkommazahlen miteinander verglichen werden und wandelt beide Werte zuvor mit Hilfe der Funktion float() in eine Fließkommazahl um.


$zahl1 = 123; // Integer
$zahl2 = 123.0; // Fließkommazahl
echo $zahl1 === $zahl2; // gibt FALSE zurück
echo float($zahl1) === float($zahl2); // gibt TRUE zurück

!== (ungleich mit Typprüfung)

Gibt TRUE zurück, wenn der Wert auf der linken Seite ungleich dem Wert auf der rechten Seite oder beide Variablen nicht denselben Typ haben. Die erste Zeile vergleicht eine Ganzzahl (Integer) mit einer Fließkommazahl, was zum Ergebnis TRUE führt. Der zweite Vergleich stellt sicher, dass zwei Fließkommazahlen miteinander verglichen werden und wandelt beide Werte zuvor mit Hilfe der Funktion float() in eine Fließkommazahl um.


$zahl1 = 123; // Integer
$zahl2 = 123.0; // Fließkommazahl
echo $zahl1 !== $zahl2; // gibt TRUE zurück
echo float($zahl1) !== float($zahl2); // gibt FALSE zurück

Deine Aufgabe - Jetzt bist du gefragt:

Schaue dir folgende fünf Vergleiche an. Deine Aufgabe ist es zu erkennen, ob der jeweilige Vergleich TRUE oder FALSE ergibt. Unter der Aufgabe findest du die korrekt Lösung.

  1. 29 == 33
  2. 50 > 34
  3. 12 >= 67
  4. 53 != 52
  5. 97 < 96

[lp_spoiler title="Lösung anzeigen" class="da"]

TRUE/FALSE Lösungen (mit kurzer Erklärung):

  1. 29 == 33 # FALSE, 29 ist nicht gleich 33
  2. 50 > 34 # TRUE, 50 ist größer als 34
  3. 12 >= 67 # FALSE, 12 ist nicht größer oder gleich 67
  4. 53 != 52 # TRUE, 53 ist ungleich 52
  5. 97 < 96 #  FALSE, 97 ist nicht kleiner als 96

[/lp_spoiler]

Zusammenfassung zu Vergleichsoperatoren

Das waren die wichtigsten Grundlagen zu Vergleichsoperatoren. Jetzt hast Du gelernt, was Vergleichsoperatoren sind und wie Du diese in der Praxis einsetzen kannst. Sie sind ein weiteres hilfreiches Werkzeug in der Programmierung und kommen immer bei Entscheidungen vor.