PHP 4.3

4.3.1 Kombination logischer Operatoren

Wenn Sie die Ausdrücke untereinander kombinieren und erst dann mit anderen Ausdrücken vergleichen möchten, können Sie dies unter Mithilfe von Klammern, ähnlich zur Klammersetzung in mathematischen Aufgaben, realisieren. In Lerneinheit 2 hatten wir dazu bereits erläutert, dass Sie mit der Klammersetzung die Rangfolge von Operatoren und damit die Reihenfolge der Bearbeitung in einer Anweisung ändern können.

Syntax:
<?php

  $birnen = 5;
  $kiwis = 4;
  $orangen = 8;

  if ($birnen == 5 && $orangen == 6) {
    echo "5 Birnen und 6 Orangen";
  } elseif ($birnen == 5 || $orangen == 8 && $birnen == 2) {
    echo "5 Birnen oder 8 Orangen und 2 Birnen";
  } elseif (($birnen == 5 and $orangen == 3) xor $kiwis == 8) {
    echo "5 Birnen und 3 Orangen oder 8 Kiwis aber nicht 5 Birnen, 3 Orangen und 8 Kiwis";
  }

?>


Browserausgabe:

  5 Birnen oder 8 Orangen und 2 Birnen
  

Nur die zweite Bedingung hat sich als wahr erwiesen. Darauf hatte auch die Operatoren-Rangfolge entscheidenden Einfluss. Da && einen höheren Rang einnimmt als ||, wird der mittlere Teil der Bedingung zuerst geprüft. Wenn wir uns die Rangfolge mithilfe von Klammern vergegenwärtigen, stellt sich die Bedingungsprüfung wie folgt dar: $birnen == 5 || ($orangen == 8 && $birnen == 2).
Zwar liefert der rechte Teil der Bedingungsprüfung false zurück, da $birnen 5 und nicht 2 beträgt. Im zweiten Schritt wird jedoch der linke Teil der Bedingung geprüft. Das logische Oder (||) trifft zu, sodass die Bedingung insgesamt true zurückliefert.

Sie können zu Testzwecken selbst Klammern setzten, um die Operatoren-Rangfolge zu beeinflussen. Die folgende Bedingung liefert false zurück, weil nun zuerst der Inhalt der Klammer geprüft wird und true liefert, jedoch die logische Und-Verknüpfung mit dem rechten Bedingungsteil insgesamt false ergibt:

elseif (($birnen == 5 || $orangen == 8) && $birnen == 2)

Im nächsten Abschnitt bekommen Sie weitergehende Informationen zum Thema logische Operatoren und Logik allgemein. Dieser Abschnitt ist relativ abstrakt und daher als Hintergrundinformation gedacht. Sie sollen zu einem tiefergehenden Verständnis für logische Operationen beitragen.

Kommentare (0)

Ihr Kommentar

Name