IT-Academy Logo
Sign Up Login Help
Home - Programmieren - PHP - Kontrolstrukturen in PHP: ein Tutorial



Kontrolstrukturen in PHP: ein Tutorial

Wie jede andere Programmiersprache auch, bietet PHP Kontrolstrukturen (if, else, while, usw.) womit man die Reihenfolge bestimmen kann in welcher die Befehle ausgeführt werden.


Autor: Patrick Faes (dreamer)
Datum: 29-12-2003, 01:01:04
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 5531x
Rating: 8 (2x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Kontrolstrukturen und Program Flow

Wie jede Programmiersprache bietet auch PHP Kontrolstrukturen (if, else, elseif, while, usw.) um den Program Flow zu steuern. Ein anderer Name für Program Flow ist Execution Flow. Und dies sagt so ungefähr was es ist: es ist die Reihenfolge in welcher die verschiedenen Befehle ausgeführt werden sollen. Normalerweise geht dies von links nach rechts und von oben nach unten (halt so wie wir ein Text lesen).
Diese Reihenfolge kann allerdings geändert werden durch dem Stellen von Bedingungen. Die wohl meist gebrauchten sind if und else.

if ($temperatur >= 30) {echo'Wir gehen zum Strand!';}
else {echo'Wegen dem schlechten Wetter müssen wir leider zuhause bleiben.';}

Wenn die Variable $temperatur wenigstens 30 ist, wird der Text Wir gehen zum Strand auf dem Bildschirm gezeigt. Wenn die Bedingung dagegen false ist, wird der Text Wegen dem schlechten Wetter müssen wir leider zuhause bleiben. auf dem Bildschirm gezeigt.

Bevor ich weiterfahre, möchte ich jetzt erst die Vergleichs-Operatoren erklären. Es handelt sich hierbei um mathematische Ausdrückungen um zu testen ob die Bedingung erfüllt ist. Es gibt:
  • == bedeutet "ist gleich"; hierbei sollte man bemerken, dass wenn man nur einmal = schreibt, es um einen Wert-Zuweisung geht, und nicht um eine Vergleichs-Operator
  • != bedeutet "ist nicht gleich"
  • > bedeutet "ist größer als"
  • < bedeutet "ist kleiner als"
  • <= bedeutet "ist kleiner oder gleich"
  • >= bedeutet "ist größer oder gleich"
Man kann die Ausführung eines Befehls auch abhängig machen von zwei Bedingungen:

if (($temperatur>=30)&&($regen==nein))

Hier wurde die Bedingung wie folgt zusammen gestellt:
( (Bedingung 1) && (Bedingung 2) )
Der Operator && bedeutet UND.
Es gibt drei solche Operatoren:
  • && bedeutet UND
  • || beutet ODER (das |-Zeichen befindet sich auf einem AZERTY-Klavier unter die 1)
  • ! bedeutet NICHT
Desweiteren kann man die Bedingungen auch beliebig kombinieren;

if ( ((Bedingung 1) && (Bedingung 2)) || ((Bedingung 3) ! (Bedingung 4))
Hier wird der Befehl ausgeführt wenn Bedingung 1 und 2 true ergeben, oder wenn Bedingung 3 true ergibt und Bedingung 4 false.

Da wir dies jetzt hinter uns haben, mache ich jetzt mal eine Liste von die verschiedenen Kontrolstrukturen:
  • If
  • ElseIf
  • Else
  • Switch()
  • While()
  • Do-While()
  • For()
If und Else wurden schon behandelt, doch jetzt kommt noch ElseIf dazu.

if (Bedingung 1) {Befehl wird ausgeführt wenn Bedingung 1 true ist}
elseif (Bedingung 2) {Befehl wird ausgeführt wenn Bedingung 1 false ist}
elseif {Bedingung 3) {Befehl wird ausgeführt wenn Bedingungen 1 und 2 false sind}
else (Bedingung 4) {Befehl wird ausgeführt wenn Bedingungen 1,2 und 3 fasle sind}

Wenn man sehr viele If-Bedingungen hat, gibt es auch eine einfachere Schreibvariante:

switch ($var) {
case 'wert1': {Befehl};break;
case 'wert2': {Befehl1};{Befehl2};break;
case 'wert3': {Befehl};break;
default: {Befehl};
}

Auf Zeile 1 wird in Switch() bestimmt welcher Variable benutzt wird (hier ist es $var). Danach wird mit case ' ' bestimmt was passieren soll wenn der Variable einen bestimmten Wert hat.Wenn der Variable gleich wert1 ist, wird der erste Befehl ausgeführt. Wie auf der dritten Zeile zu sehen ist, können auch mehrere Befehle ausgeführt werden. Dafür müssen sie aber jeweils durch ein Kommata getrennt werden. Danach muss immer break; folgen, sodass die Befehle weiter unten nicht mehr ausgeführt werden.
Mit default bestimmt man welche Befehle ausgeführt werden sollen, wenn die Variable keine der obigen Werte hat (das default muss immer als letztes stehen).
Kleiner Tipp: wenn die Variable noch keinen Wert hat, kann man die Variable einen Wert geben mit:

if (empty($var)) $var='wert';
Als nächstes zeige ich ein Beispiel zu While():

$zaehler = 1;
while ($zaehler <= 10)
{Befehl;}
$zaehler+1;
}

Hier wird die Variable $zaehler den Anfangswert 1 gegeben. Und solange $zaehler kleiner oder gleich ist als 10, wird der Befehl ausgeführt und danach wird der Variable $zaehler mit 1 erhöht. Der Befehl würde hier zehn mal ausgeführt werden, weil $zaehler danach den Wert 11 haben würde und die Bedingung false ist.

Eine Variante auf While() ist Do-While(). Der Unterschied besteht darin dass hier die Kontrolle erst nach dem Ausführen des Befehls stattfindet:

$zaehler = 1;
do {Befehl;}
while (Bedingung);
$zaehler+1;

Weiter gibt es noch for(). Das sieht so aus:

for ($zaehler;$zaehler < 10; $zaehler+1;)
{Befehl;}

In for() wird eine Variable einen Wert vergeben, danach wird auf die Bedingung kontrolliert, und danach wird die Variable erhöht (geschieht alles immer automatisch). Dann wird der Befehl ausgeführt, und dann beginnt alles wieder von vorne (solange die Bedingung true ist).

While(), Do-While() und For() werden oft genutzt im Zusammenhang mit Datenbanken. Aber das ist eine andere Geschichte.


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04506
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06241
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1140
Comments: 0