Bedingungen

Bislang können wir zwar wie wild Variablen anlegen und ihnen Werte zuweisen, aber mehr als hier und da die Variablen auszugeben, ist nicht drin. Was machst du z.b. wenn du abhängig vom Wert einer Variablen etwas anderes ausgeben möchtest? Oder wenn du erstmal prüfen möchtest, ob eine Variable einen Wert hat, bevor du sie ausgibst? Lies weiter um zu erfahren, wie das geht.

Einfache Bedingung

<?php
	$zahl = 5;
	
	if($zahl == 5)
		echo "Die Variable hat den Wert 5";
?>

Das Schlüsselwort „if“ leitet unsere Bedingung ein. Der Ausdruck, der in der Klammer steht, muss wahr sein, damit Zeile 5 ausgeführt wird und damit auf dem Bildschirm „Die Variable hat den Wert 5“ erscheint.

Versteh ich nicht, bitte einfacher!

Eine Bedingung fängt immer mit dem Wort „if“ an, gefolgt von einer öffnenden und einer schließenden Klammer:

<?php
	if()
?>

So alleine funktioniert das noch nicht, es fehlt nämlich noch der Ausdruck, der in der Klammer steht. Das kann vieles sein, zum Beispiel kann man zwei Werte miteinander vergleichen ($zahl == 5), oder einfach nur eine Variable reinschreiben ($eingeloggt) oder noch einfacher, man schreibt folgendes:

<?php
	if(true)
		echo "Die Bedingung ist wahr, deshalb siehst du diesen Text";
?>

Oben hab ich schonmal angedeutet, dass der Ausdruck, der in der Klammer steht, wahr sein muss, damit die nächste Zeile ausgeführt wird. Das ist für Anfänger meist erstmal nicht so einfach zu verstehen (bitte frag nach, wenn irgendwas unklar ist!). Wann ist ein Ausdruck wahr? Wann ist er falsch? Wenn du also in deine Klammer „true“ reinschreibst, ist der Ausdruck immer wahr. Das heißt, die Zeile, die der Bedingung folgt, wird immer ausgeführt. Das ist aber nur für Testfälle interessant, denn was würde es uns bringen, wenn eine Bedingung immer wahr ist, dann können wir die Bedingung auch weglassen, weil es immer ausgeführt wird (verstehst du?).

Ein Ausdruck ist wahr oder falsch

Unser Gerüst für eine Bedingung sieht also folgendermaßen aus:

<?php
	if(Ausdruck)
		echo "gib hier irgendwas aus";
?>

Der Ausdruck muss also wahr sein, damit PHP die Zeile mit „echo“ ausführt. Wenn der Ausdruck also falsch ist, wird die Zeile 3 nicht ausgeführt, ganz einfach.

<?php
	$zahl = 12;
	$name = "Hans";
	
	if($zahl == 11)
		echo "Die Variable zahl hat den Wert 11";
		
	if($name == "Hans")
		echo "Die Variable name hat den Wert Hans";
?>

Die erste Bedingung ist falsch, weil unsere Variable „zahl“ nunmal nicht den Wert 11, sondern den Wert 12 hat. Die zweite Bedingung hingegen ist wahr, denn unsere Variable „name“ hat den Wert „Hans“. Achte darauf, dass ein Vergleich von zwei Werten immer mit dem doppelten Gleichheitszeichen erfolgt und eine Wertzuweisung mit einem einfachen Gleichheitszeichen.

Bedingung mit mehrzeiliger Anweisung

Bislang kannst du nur Bedingungen erstellen, die, wenn sie wahr sind, eine Zeile ausgeben. Doch was ist, wenn du mehrzeilige Anweisungen hast? Folgendes funktioniert nämlich nicht:

<?php
	$name = "Hans";

	if($name == "Hans")
		echo "Hallo Hans";
		echo "schön dich wiederzusehen";
?>

Wenn die Bedingung wahr ist, wird beides ausgegeben. Doch wenn du den Wert der Variable name änderst, wird nur noch das zweite echo ausgegeben. Woran liegt das? Ganz einfach, PHP schließt in die Anweisung nur die erste Zeile nach der Bedingung ein, also echo „Hallo Hans“;
Die darauffolgende Zeile wird ganz normal ausgeführt, unabhängig von der Bedingung. Normalerweise sehe der Code auch so aus (ich habe es extra eingerückt, um es deutlich zu machen):

<?php
	$name = "Hans";

	if($name == "Hans")
		echo "Hallo Hans";
	
	echo "schön dich wiederzusehen";
?>

Damit obiges Beispiel korrekt funktioniert, musst du PHP klarmachen, dass du eine mehrzeilige Anweisung hast:

<?php
	$name = "Hans";

	if($name == "Hans")
	{
		echo "Hallo Hans";
		echo "schön dich wiederzusehen";
	}	
?>

Alles was innerhalb der geschweiften Klammern steht, wird ausgeführt wenn die Bedingung wahr ist. Du solltest deine Zeilen ebenfalls so einrücken, durch gut strukurierten Code, wirst du Fehler schneller finden und dein Skript auch nach Monaten leicht verstehen.

Fazit

Bedingungen sind sehr wichtig, doch für Anfänger nicht gerade leicht zu verstehen. Gerade der Punkt, dass Ausdrücke wahr oder falsch sein können, wirft meist viele Fragen auf (frag nach!). Ich hab dieses Kapitel in mehrere Teile aufgesplittet, im nächsten Punkt wirst du Bedingungen mit Alternativen kennenlernen, also was passiert, wenn ein Ausdruck nicht wahr ist. Schau es dir an!

hier geht's weiter...



Kommentare


Dient das doppelte Gleichheitszeichen nur zur besseren Übersicht oder ist das beim Vergleich auch so wichtig?
Bei dem letzten Beispiel passiert bei mir exakt das selbe, egal ob ich die geschweiften Klammern dazuschreibe oder weglasse. Ist das auch nur zur Übersicht?


Das doppelte Gleichheitszeichen wird bei vergleichen verwendet. Möchtest du 2 Variablen miteinander vergleichen musst du dafür das doppelte Gleichheitszeichen verwenden.

Wenn du einer Variablen einen Wert zuweisen möchtest, dann nimmst du das einfache Gleichheitszeichen. Frag nach wenn noch was unklar sein sollte :)


@Jessi Wenn du die geschweiften Klammern weglässt, wird dir das erste echo wiedergegeben, weil die Bedingung wahr ist. Das zweite echo wird einfach so ausgeben, ist nicht an die Bedingung geknüpft. Versuch mal den Namen in Zeile 4 zu ändern (so das die Bedingung nicht wahr ist), dann wirst du es sehen.


@Jessi Wenn du die geschweiften Klammern weglässt, wird dir das erste echo wiedergegeben, weil die Bedingung wahr ist. Das zweite echo wird einfach so ausgeben, ist nicht an die Bedingung geknüpft. Versuch mal den Namen in Zeile 4 zu ändern (so das die Bedingung nicht wahr ist), dann wirst du es sehen.

Kommentar schreiben

Kommentar

Hilfe:

<strong>fettgedruckt</strong> => fettgedruckt

<em>kursiv</em> => kursiv

<a href="http://wordpress.lernenhoch2.de">Link</a> => Link

[code]<?php echo 'hello world'; ?>[/code]

*

Feedback Formular