Wahrheitswerte kombinieren

Bislang haben wir innerhalb der Bedingung nur für einen Wert geprüft, ob der Wert wahr oder falsch ist. Doch man kann mehrere Wahrheitswerte kombinieren:

AND (&&)

Häufig ist eine Bedingung von zwei Werten abhängig, also nur wenn beide Werte WAHR sind, ist die Bedingung erfüllt. Ein gutes Beispiel ist ein Kommentarsystem. Du möchtest deinen Benutzern erlauben, auf deiner Seite Kommentare zu schreiben, aber nur wenn der Benutzer seinen Namen und eine Email-Adresse angibt.

<?php
	$name = "Klaus";
	$email = "klaus63552@fakemail.de";

	if($name != '')
	{
		if($email != '')
		{
			echo 'Dein Kommentar wurde gespeichert';
		}
	}
?>

Hier siehst du erstmal, dass man Bedingungen auch ineinander verschachteln kann, also erst wird geprüft, ob der Benutzer einen Namen eingegeben und danach ob er auch eine EMail Adresse angegeben hat. Wenn beide Bedingungen wahr sind, wird der Kommentar gespeichert. Das kann man aber auch kürzer schreiben:

<?php
	$name = "Klaus";
	$email = "klaus63552@fakemail.de";

	if(($name != '') && ($email != ''))
	{
		echo 'Dein Kommentar wurde gespeichert';
	}
?>

Das &&-Zeichen steht für AND und heißt soviel wie, die erste Bedingung muss wahr ergeben und die zweite Bedingung ebenfalls, damit der gesamte Ausdruck wahr ist. Also, dass „if“-Statement möchte nur einen Wert aus der Klammer erhalten, WAHR oder FALSCH. Wir können aber innerhalb der Klammer mehrere Wahrheitswerte kombinieren und mit dem &&-Operator sagen, dass alle Bedingungen wahr sein sollen.

OR (||)

Zusätzlich zum &&-Operator gibt es noch den ||-Operator, den ODER-Operator. Dieser sagt, dass nur eine Bedingung wahr sein muss, damit der gesamte Ausdruck wahr ist. Wenn wir obiges Beispiel ein wenig anpassen:

<?php
	$name = "Klaus";
	$email = "";

	if(($name != '') || ($email != ''))
	{
		echo 'Dein Kommentar wurde gespeichert';
	}
?>

Jetzt reicht es schon, wenn der Besucher entweder seinen Namen angibt oder seine Email-Adressen. Er kann aber auch weiterhin beides angeben, damit das if-Statement wahr ist. Der einzige Fall wo es nicht klappt ist, wenn er weder den Namen, noch die Email Adresse angibt.

Drei und mehr Bedingungen kombinieren

Natürlich ist man nicht auf zwei Bedingungen beschränkt, man kann soviele Bedingungen miteinander kombinieren wie man mag:

<?php
	if(($wert1 != 0) && ($wert2 > 100) && ($wert2 <= 200))
	{
		//WAHR, nur wenn alle 3 Bedingungen wahr sind
	}
?>
<?php
	if(($wert1 != 0) || ($wert2 > 100) || ($wert2 <= 200))
	{
		//WAHR, wenn einer der 3 Bedingungen wahr sind
	}
?>
<?php
	if((($wert1 != 0) || ($wert2 > 100)) && ($wert2 <= 200))
	{
		//WAHR, wenn entweder Bedingung 1 oder Bedingung 2 wahr ist UND Bedingung 3 wahr ist
		//bei solchen Konstruktionen auf die Klammersetzung achten!
	}
?>
<?php
	if((($wert1 != 0) && ($wert2 > 100)) || ($wert2 <= 200))
	{
		//WAHR, wenn entweder Bedingung 1 und Bedingung 2 wahr sind ODER Bedingung 3 wahr ist
		//bei solchen Konstruktionen auf die Klammersetzung achten!
	}
?>

Fazit

Dies ist das Kombinieren von Wahrheitswerten. Als Ergebnis erhält man immer nur WAHR oder FALSCH doch kann man dadurch mehrere Fälle zusammen abfragen. Umso mehr Bedingungen man miteinander kombiniert, desto komplexer wird die Abfrage und damit schwerer für andere zu verstehen. Daher macht es manchmal Sinn auf die Kombination von Wahrheitswerten zu verzichten und stattdessen die einzelnen Abfragen in if-Verschachtelungen abzufragen.

hier geht's weiter...



Feedback Formular