Kind mit Eis

PHP Entscheidungen



Ideen: M. Metz, S. Lipka, M. Heintz Elektronikschule Tettnang
T. Wegener, "PHP5 Grundlagen Erstellung dynamischer Webseiten", Herdt Verlag, 2008
S. Heller, "PHP 8.0 Dynamische Webseiten erstellen", Herdt Verlag, 2021
https://www.learnjavaonline.org


Jede Entscheidung beginnt mit der Prüfung einer Bedingung. Diese Prüfung/Auswertung ergibt einen Wert vom Datentyp boolean. Jede Entscheidung hat zwei Auswahlmöglichkeiten. Entscheidungen gehören zu den grundlegenden Kontrollstrukturen.

In diesem Artikel werden die Grundlagen von Entscheidungen in PHP erklärt. Dabei werden neben Schlüsselwörtern if und else verschiedene Operatoren für Bedinungen erklärt. Beispiele zeigen die Einsatzmöglichkeiten von Entscheidungen auf.

PHP Entscheidungen mit Vergleichen durchführen



Jede Entscheidung beginnt mit dem Schlüsselwort if und der Prüfung einer Bedingung. Diese Prüfung/Auswertung ergibt einen Wert vom Datentyp boolean. Falls dieser wahr ist, wird die nachfolgende Anweisung in den geschweiften Klammern ausgeführt:
<?php
$a = 4;
if($a == 4){
  echo 'Oh, a hat den Wert 4!';
}
?>

Da eine Entscheidung zwei Optionen bietet, können wir optional auch ein else-Angabe machen:
<?php
$a = 3; $b = 4
if($a == $b){
  echo 'Das kennen wir schon.';
}
else{
  echo 'a und b sind nicht gleich';
}
?>

Vergleich zweier Werte
Gib zwei Werte an:

  • Gib zwei Werte an:
    <form method="GET" class="row" action="#formulareingabe1">
      <div class="mb-3 mt-1 col-auto">
        <input type="number" class="form-control" name="value1">
      </div>
      <div class="mb-3 mt-1 col-auto">
        <input type="number" class="form-control" name="value2">
      </div>
      <div class="mt-1 d-grid gap-2 d-sm-block d-print-none">
        <button type="submit" class="btn btn-outline-primary mb-3">Werte vergleichen</button>
      </div>
    </form>

    <?php
    echo 'Ergebnis: ';
    if($_GET['value1'] == $_GET['value2']){
      echo $_GET['value1'].' und '.$_GET['value2'].' sind identisch';
    }
    else{
      if($_GET['value1'] < $_GET['value2']){
        echo $_GET['value1'].' ist kleiner als '.$_GET['value2'];
      }
      else{
        echo $_GET['value1'].' ist größer als '.$_GET['value2'];
      }
    }
    ?>

Operatoren zum Vergleichen und Verknüpfen



Für die Bedinungsprüfung stehen Vergleichsopertoren zur Verfügung. In Datenbankanwendungen werden sie auch als relationale Operatoren bezeichnet:

  < kleiner als
  > größer als

 <= kleiner gleich
 >= größer gleich

 != ungleich
 == genau gleich

Um mehrere Bedingungen zu kombinieren stehen logische Operatoren zur Verfügung:

  && und
  || oder

   ! nicht

Farbauswahl und Entscheidung
Wähle zwei Farben:
  • <form method="GET" action="#formulareingabe2">
      Wähle zwei Farben:<br>
      <label for="exampleColorInput" class="form-label">Color picker 1</label>
      <input type="color" class="form-control form-control-color" id="exampleColorInput" name="color1" value="#9C27B0">

      <label for="exampleColorInput" class="form-label">Color picker 2</label>
      <input type="color" class="form-control form-control-color" id="exampleColorInput" name="color2" value="#9C27B0">

      <div class="d-grid gap-2 d-sm-block d-print-none">
        <button type="submit" class="btn btn-outline-primary mb-3">zum Vergleich 🎨</button>
      </div>
    </form>

    Die Farben<br>
    <input type="color" class="form-control form-control-color" value="<?= $_GET['color1'] ?>" disabled>
    und
    <input type="color" class="form-control form-control-color" value="<?= $_GET['color2'] ?>" disabled>

    <?php
    $color1 = substr($_GET['color1'],1);
    $color1 = hexdec($color1);
    $color2 = substr($_GET['color2'],1);
    $color2 = hexdec($color2);

    if($color1 == $color2){
      echo 'sind identisch.';
    }
    else{
      echo 'sind unterschiedlich.';
    }
    ?>

Übung 1 Welche Aussage ist wahr?

Wähle die korrekten Aussagen aus.

$a=2; $b=3;
if($a < $b)
if($a == $b)

Werte die Bedingungen aus. Wähle eine Antwort.

  1. Bedingung 1 wahr, Bedingung 2 falsch
  2. Bedingung 2 wahr, Bedingung 1 falsch
  3. beide Bedingungen wahr
  4. beide Bedingungen falsch


$a=12; $b=3;
if($a >= $b)
if($a != $b)

Werte die Bedingungen aus. Wähle eine Antwort.

  1. Bedingung 2 wahr, Bedingung 1 falsch
  2. Bedingung 1 wahr, Bedingung 2 falsch
  3. beide Bedingungen falsch
  4. beide Bedingungen wahr



$a=12; $b=13;
if($a >= 4)
if($a <= 12)

Werte die Bedingungen aus. Wähle eine Antwort.

  1. Bedingung 2 wahr, Bedingung 1 falsch
  2. Bedingung 1 wahr, Bedingung 2 falsch
  3. beide Bedingungen wahr
  4. beide Bedingungen falsch


$a=12; $b=3;
if($a != 12)
if($a <= 12 || $b <= 12)

Werte die Bedingungen aus. Wähle eine Antwort.

  1. Bedingung 2 wahr, Bedingung 1 falsch
  2. Bedingung 1 wahr, Bedingung 2 falsch
  3. beide Bedingungen wahr
  4. beide Bedingungen falsch


$a=7; $b=7;
if(!($a == 12))
if($a <= 12 && $b >= 2)

Werte die Bedingungen aus. Wähle eine Antwort.

  1. beide Bedingungen wahr
  2. beide Bedingungen falsch
  3. Bedingung 2 wahr, Bedingung 1 falsch
  4. Bedingung 1 wahr, Bedingung 2 falsch


$a=7; $b=7;
if(!($a == 12 || $b == 7))
if($a <= 12 && $b <= 2 )

Werte die Bedingungen aus. Wähle eine Antwort.

  1. beide Bedingungen wahr
  2. beide Bedingungen falsch
  3. Bedingung 2 wahr, Bedingung 1 falsch
  4. Bedingung 1 wahr, Bedingung 2 falsch

Übung 2 Bedingungen auswerten

Spiel blockly bird

Zum Training von Vergleichsoperatoren und logischen Operatoren dient dieses Spiel. Mit zunehmenden Level nimmt die Komplexität der Bedingungen zu.


Zum Training logischer Operatoren dient dieses weitere Spiel. Auch hier nimmt mit zunehmenden Level die Komplexität der Bedingungen zu.


Entspann dich erstmal ...



Dario Fontanellas gilt als der Erfinder des Spagettieis. In diesem Video von Galileo verrät er, woran man gute Qualität erkennt und was das Geheimnis von perktem Eis ist. Der Profi gilt als bester Eismacher Deutschlands.

Entscheidungen Checkboxen, nützliche Funktionen



Auch mit Checkboxen lassen sich Entscheidungen treffen. Man darf nur nicht vergessen das Attribut value="..." anzugeben
<form method="GET" action="...">
  <input type="checkbox" name="wert1" value="lecker">
  <input type="submit" value="Senden">
</form>

Die Auswertung kann einerseits über den Wert des Attributs value erfolgen. Möchte man anderseits aber die Anzahl der ausgewählten Checkboxen zählen funktioniert die Auswertung über die Methode isset(...)
<?php
$anzahl = 0;
if(isset($_GET["wert1"]) ){
  $anzahl++;
}
?>

Eisauswahl und Entscheidung
1 Kugel 1,20 €, jede weitere Kugel 0,90 €
  • <form method="GET" action="#formulareingabe3">
      <input class="form-check-input" type="checkbox" value="chestnut" id="flexCheck1" name="icecream1">
      <label class="form-check-label" for="flexCheck1"> 🌰 </label>
      <input class="form-check-input" type="checkbox" value="blueberry" id="flexCheck2" name="icecream2">
      <label class="form-check-label" for="flexCheck2"> 🫐 </label>

      <button type="submit" class="btn btn-outline-secondary">in die Waffel 🧇</button>
    </form>

    <?php
    $icecreamCount=0;
    $icecreamCost=0;
    if(isset($_GET["icecream1"]) ) $icecreamCount++;
    if(isset($_GET["icecream2"]) ) $icecreamCount++;
    if($icecreamCount <= 1) $icecreamCost = $icecreamCount*1.2;
    else $icecreamCost = 1.2+($icecreamCount-1)*0.9;
    ?>
    <?php if($icecreamCount > 0){?>
      <p>Anzahl Kugeln: <?php echo $icecreamCount ?><br>
      Preis: <?php echo number_format($icecreamCost, 2, ",") ?> €</p>
    <?php }?>

Übung 3 build your own salad 🥗

Salat und Smoothies

Die Menükarte "build your own salad" der Salatfarm Ohkajhu aus Chiang Mai in Thailand soll mit Entscheidungen erweitert werden. Ein Salat wird in vier Schritten zusammengestellt und kostet in der Basisvariante 50 THB. Nutze Checkboxen und Radiobuttons.

  1. Step 1: You can choose 1 salad.
  2. Step 2: You can choose 5 free toppings. Extra topping 5 THB.
  3. Step 3: You can choose 1 free dressing. Extra dressing 30 THB.
  4. Step 4: Add more extra topping.
  5. Gib den Gesamtpreis und die Auswahl am Ende an.
Tabelle: build your own salad
Salad red oak, green oak, lettuce, iceberg, green coral, baby salad, mixed salad
Topping corn, asparagus, tomato, onion, egg, pepper, carrot, pumpkin seed, sunflower seed
Dressing thousand island, blue cheese, cream, cesar, tofu, garlic, italian vinaigrette, black sesame
Extra Topping roasted pork 25 THB, bacon 25 THB, pineapple 20 THB, chicken 35 THB, tuna 35 THB

Übung 4 Urlaubsreif 🏝

Philippinische Insel

  1. Erstelle eine Webseite welche den Anwender für einen 600 EUR teuren Flug verschiedene Optionen abfragt: eine SMS-Benachrichtigung kostet 2,95 EUR, eine Reise­rücktritts­versicherung 32 EUR und eine Gepäck­versicherung 13 EUR. Ausgegeben wird der Gesamtpreis.
  2. Alternativ wird das Rundum-Sorglos-Paket für 44 EUR angeboten, welches SMS-Benachrichtigung, eine Reise­rücktritts­versicherung und eine Gepäck­versicherung beinhaltet.
  3. Sollte der Gesamtpreis über 640 EUR liegen beträgt der Rabatt 7  %.

Übung 5 Welche Aussage ist wahr?

Wähle die korrekten Aussagen aus.

Gegeben ist folgender Quellcode in php:
$icecreamCount = 3;
if($icecreamCount <= 1) $icecreamCost = $icecreamCount*1.2;
else $icecreamCost = 1.2+($icecreamCount-1)*0.9;

Bestimme den Wert der Variable $icecreamCost.
Wähle eine Antwort.

  1. 0.0
  2. 3.0
  3. 3.6
  4. Der Quellcode ist fehlerhaft.


Wähle korrekte Aussagen über Entscheidungen.
Wähle beliebig viele Antworten.

  1. Eine Option muss in geschweiften Klammern stehen.
  2. Eine Entscheidung benötigt sowohl if als auch else.
  3. Geschweifte Klammern sind bei Einzelanw. optional.
  4. Eine Entscheidung benötigt mindestens ein if.



Wähle korrekte Aussagen über die Variable $icecreamCount.
Wähle beliebig viele Antworten.

  1. $icecreamCount hat den Wert 3.
  2. $icecreamCount kann initialisiert werden.
  3. Die Entscheidung ändert $icecreamCount.
  4. $icecreamCount muss initialisiert werden.


Wähle korrekte Aussagen über die Variable $icecreamCost.
Wähle beliebig viele Antworten.

  1. $icecreamCost wird ein Wert zugewiesen.
  2. $icecreamCost wird verglichen.
  3. Der Wert von $icecreamCost wird berechnet.
  4. $icecreamCost muss initialisiert werden.



Wortliste und Satzbausteine



die Ent­scheidung, -en Jede Entscheidung beginnt mit dem Schlüsselwort if und der Prüfung einer Bedingung. Falls die Bedinung wahr ist, wird Option 1 abgearbeitet, sonst Option 2: if(Bedingung){Option1} else {Option2}.
der Vergleichsoperator, en zum Prüfen von Bedingungen
der logische Operator, en zum Verknüpfen von Bedingungen
die Zuweisung, -en einer Variable einen Wert geben: $a = 0;
die Bedingung, -en eine Anweisung auf deren Wahrheitswert prüfen: $a == 0;