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.
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';
}
?>
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'];
}
}
?>
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
<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.';
}
?>
$a == 4
mit einer Zuweisung $a = 4
.
Wähle die korrekten Aussagen aus.
$a=2; $b=3;
if($a < $b)
if($a == $b)
$a=12; $b=3;
if($a >= $b)
if($a != $b)
$a=12; $b=13;
if($a >= 4)
if($a <= 12)
$a=12; $b=3;
if($a != 12)
if($a <= 12 || $b <= 12)
$a=7; $b=7;
if(!($a == 12))
if($a <= 12 && $b >= 2)
$a=7; $b=7;
if(!($a == 12 || $b == 7))
if($a <= 12 && $b <= 2 )
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.
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.
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++;
}
?>
<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 }?>
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.
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 |
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.
0.0
3.0
3.6
Wähle korrekte Aussagen über Entscheidungen.
Wähle beliebig viele Antworten.
if
als auch else
.if
.Wähle korrekte Aussagen über die Variable $icecreamCount
.
Wähle beliebig viele Antworten.
$icecreamCount
hat den Wert 3
.$icecreamCount
kann initialisiert werden.$icecreamCount
.$icecreamCount
muss initialisiert werden.Wähle korrekte Aussagen über die Variable $icecreamCost
.
Wähle beliebig viele Antworten.
$icecreamCost
wird ein Wert zugewiesen.$icecreamCost
wird verglichen.$icecreamCost
wird berechnet.$icecreamCost
muss initialisiert werden.die Entscheidung, -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; |