MB Dev .tech
Registrieren Login

PHP · Operatoren & Vergleiche

← Zurück zu PHP Basics

Operatoren sind „Zeichen“, mit denen du in PHP rechnest, vergleichst und Logik baust. Ohne Operatoren gibt es keine Bedingungen und keine Entscheidungen.

Merke
Vergleiche liefern immer true oder false

Ein Vergleich ist eine Frage: „Stimmt das?“ Das Ergebnis ist immer true oder false.

1) Rechenoperatoren (+, -, *, /, %)

Rechenoperatoren kennst du aus der Schule. In PHP funktionieren sie genauso. Besonders wichtig ist % (Modulo): damit prüfst du z.B., ob eine Zahl gerade ist.

Rechnen

$price = 12;
$tax   = 3;

echo $price + $tax;  // 15
echo $price - $tax;  // 9
echo $price * 2;     // 24
echo $price / 3;     // 4
Modulo (sehr praktisch)

$number = 10;

echo $number % 2; // 0  (gerade)
echo 11 % 2;      // 1  (ungerade)
Tipp
Gerade/ungerade prüfen

Gerade: $n % 2 === 0
Ungerade: $n % 2 !== 0

2) Zuweisung (=) und Kurzformen (+=, -=, *=, /=)

Mit = weist du einer Variable einen Wert zu. Mit Kurzformen kannst du einen Wert „direkt verändern“, ohne ihn nochmal auszuschreiben.

Kurzformen

$points = 10;

$points = $points + 5;  // lange Form
$points += 5;           // Kurzform (empfohlen)

$points -= 2;           // 2 abziehen
$points *= 2;           // verdoppeln
$points /= 2;           // halbieren
Merke
„=“ ist keine Frage

= setzt einen Wert. Vergleiche nutzt du mit == oder ===. Das verwechseln Anfänger sehr häufig.

3) Vergleichsoperatoren (==, ===, !=, <>, !==, >, >=, <, <=)

Vergleichsoperatoren beantworten Fragen wie: „Ist es gleich?“ oder „Ist es größer als?“ Das Ergebnis ist immer true oder false.

Wichtige Vergleiche

$a = 10;
$b = 12;

var_dump($a == $b);   // false  (gleich?)
var_dump($a != $b);   // true   (ungleich?)
var_dump($a <> $b);   // true   (ungleich? Alternative zu !=)

var_dump($a <  $b);   // true
var_dump($a <= $b);   // true
var_dump($a >  $b);   // false
var_dump($a >= $b);   // false
Tipp
„Ungleich“ hat zwei Schreibweisen

!= und <> bedeuten dasselbe. In der Praxis siehst du häufiger !=.

4) Sehr wichtig: == vs ===

PHP kann bei == automatisch Datentypen umwandeln. Das wirkt am Anfang praktisch – kann aber zu Überraschungen führen. Mit === vergleichst du Wert und Typ.

== vs ===

$a = "5";  // String
$b = 5;    // Integer

var_dump($a == $b);   // true  (PHP gleicht an)
var_dump($a === $b);  // false (Typ ist verschieden)
Merke
Für Einsteiger ist === meist die bessere Wahl

Wenn du „genau gleich“ prüfen willst, nutze === und !==. Das ist weniger überraschend und reduziert typische Fehler.

Achtung
„Lose Vergleiche“ können verwirren

Bei == kann PHP Werte umformen. Das ist nicht immer „falsch“, aber du musst wissen, was passiert. In vielen Projekten gilt deshalb: lieber ===.

5) Logik-Operatoren: UND / ODER / NICHT

Oft reicht ein einzelner Vergleich nicht. Dann kombinierst du mehrere Bedingungen:

  • && = UND (beide müssen stimmen)
  • || = ODER (eins reicht)
  • ! = NICHT (dreht true/false um)
&& / || / !

$age      = 20;
$hasTicket = true;

var_dump($age >= 18 && $hasTicket); // true (beides stimmt)
var_dump($age < 18 || $hasTicket);  // true (eins reicht)
var_dump(!$hasTicket);              // false (umgedreht)

PHP kennt auch Wörter als Alternative: and, or, xor, not. In der Praxis nutzt man aber meistens &&, || und !.

and / or (Alternativen)

$isMember = true;
$isAdmin  = false;

var_dump($isMember && $isAdmin); // false
var_dump($isMember and $isAdmin); // auch false (aber Achtung: anderes Verhalten möglich)
Achtung
and/or haben eine andere Priorität als &&/||

Das klingt klein – führt aber schnell zu Bugs. Als Einsteiger bleib am besten bei &&, || und setze Klammern, wenn Bedingungen länger werden.

Tipp
Klammern machen Bedingungen sofort verständlich

Beispiel: if (($a > 0 && $b > 0) || $isAdmin)
So sieht man direkt, was zusammengehört.

Kleine Aufgaben (zum Mitdenken)

Erst überlegen – dann die Lösung einblenden. Genau so festigt sich das Wissen.

Aufgabe 1 anzeigen (== vs ===)

Was geben die beiden Zeilen aus?

Aufgabe

$x = "10";
$y = 10;

var_dump($x == $y);
var_dump($x === $y);
Lösung einblenden
Lösung
== ist true, === ist false

Bei == gleicht PHP die Typen an. Bei === muss der Typ exakt stimmen (String vs Integer).

Aufgabe 2 anzeigen (UND/ODER)

Überlege: Was kommt hier raus?

Aufgabe

$a = 5;

var_dump($a > 3 && $a < 10);
var_dump($a === 5 || $a === 7);
Lösung einblenden
Lösung
Beide Ausgaben sind true

5 > 3 und 5 < 10 sind beide wahr → UND = true.
Außerdem ist $a === 5 wahr → ODER reicht schon → true.