cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
eBooks
Hochgeladene Bilder
Letzte Änderungen

Lexikon

Bücher
Themengebiete

Tutorials


Statistik
Mitglieder gesamt: 68122
Mitglieder online: 0
Gäste online: 0
mehr...

Anzeige
eBooks » eBook: PHP » eBook Kapitel: Kontrollstrukturen

eBook Kapitel: Kontrollstrukturen

Inhaltsverzeichnis

Einführung

Wie bei fast jeder Programmiersprache wird auch bei PHP der Programmablauf mit Hilfe von Kontrollstrukturen gesteuert. Sie dienen zur bedingten Ausführung oder zum wiederholten Aufruf von Codesegmenten.
Letzte Änderung: 10.05.2008 01:02 Uhr

Bool'sche Ausdrücke

Bool'sche Ausdrücke können nur die Werte true oder false annehmen. Dies kann entweder durch direkte Zuweisung dieses Wertes erfolgen, durch Vergleichsoperatoren und logische Verknüpfungen. Diese Ausdrücke werden überwiegend für als (Abbruch)Bedingungen verwendet, können aber auch nach der Auswertung Variablen zugeordnet werden.

BeispielBedeutung
A == BA ist gleich B
A != BA ist ungleich B
A === BA ist vom gleichen Typ wie B und gleich B
A !== BA ist nicht vom gleichen Typ wie B oder ungleich B
A < BA ist kleiner B
A > BA ist größer B
A <= BA ist kleiner-gleich B
A >= BA ist größer-gleich B
A == B and C == DA ist gleich B und C ist gleich D
A < B or C > DA ist kleiner B oder / und C ist größer D
A <= B xor C >= DA ist kleiner-gleich B oder C ist größer-gleich D. Beides trifft aber niemals gleichzeitig zu.


Da PHP sehr kulant gegenüber unterschiedlichen Datentypen ist, können auch Zahlen, Zeichenketten oder beliebige andere Werte im boolschen Ausdruck verwendet werden, die dann je nach Wert als true oder false angenommen werden. Beispielsweise kann dies bei Problemen bei Tests auf false zu Fehlern führen, falls der zu prüfende Wert 0 oder null ist. Hier helfen die Operatoren === und !==, die zusätzlich den Datentyp prüfen:
PHP:
1
2
3
4
5
6
<?php
$a = 0;
 
$a == false; // Ergebnis ist true
$a === false; // Ergebnis ist false
$a !== null; // Ergebnis ist true
Einige oder geben die Wahrheitswerte true oder false (also "Wahr" oder "Falsch") zurück, die innerhalb des boolschen Ausdrucks verwendet werden können.
Letzte Änderung: 03.06.2008 10:38 Uhr

if, elseif, else

Die wichtigeste Kontrollstruktur ist die Bedingung.
diff:
1
2
3
4
5
6
7
8
9
10
<?php
if (<bool'scher Ausdruck 1>) {
   // Code wird ausgeführt, wenn Ausdruck 1 true ergibt
} elseif (<bool'scher Ausdruck 2>) {
   // Code wird ausgeführt, wenn Ausdruck 2 true ergibt
} elseif (<bool'scher Ausdruck 3>) {
[...]
} else {
   // Code wird ausgeführt, wenn kein Ausdruck true ergibt
}
Beispiel: Prüfen, ob eine Zahl einen bestimmten Wert hat
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
$a = rand(0,10); // Zahl zwischen 0 und 10 erzeugen
 
if (3 > $a) {
   echo 'Zahl ist echt kleiner als 3';
} elseif (3 <= $a && 6 >= $a) {
   echo 'Zahl ist größer gleich 3 und kleiner gleich 6';
} else {
   echo 'Zahl ist größer als 6';
}
Während der Verarbeitung der Bedingung werden die bool'schen Ausdrücke der Reihe nach geprüft. Es wird nur der Code zwischen den geschweiften Klammern des ersten Blocks ausgeführt, dessen Bedingung den Wahrheitswert true liefert.

Schlüsselwörter

if: Leitet die erste Bedingung ein und ist für diese Kontrollstruktur zwingend erforderlich.

elseif: Nach dem if-Block können optional beliebig viele elseif-Blöcke verwendet werden. Jeder dieser Blöcke kann einen beliebigen bool'schen Ausdruck als Bedingung verwenden.

else: Die Kontrollstruktur kann mit einem else-Block abschließen. Dieser Block wird nur dann ausgeführt, wenn kein anderer Block der Kontrollstruktur ausgeführt wurde.

Die Reihenfolge entspricht immer if, elseif, [elseif,...], else.

Alternative Schreibweise

PHP:
1
2
3
4
5
6
7
8
<?php
if ($bedingung):
   //...
elseif ($bedingung):
  //...
else:
  //...
endif;

Gekürzte Schreibweise

Will man lediglich einer Variablen einen Wert zuweisen, so kann man statt
PHP:
1
2
3
4
5
6
<?php
if ($bedingung) {
   $var = 'if-Block';
} else {
   $var = 'else-Block';
}
auch diesen Code verwenden:
PHP:
1
2
<?php
$var = $bedingung ? 'if-block' : 'else-block';
Allerdings können bei dieser Schreibweise nur die Blöcke if und else verwendet werden. Eine Verwendung von elseif ist hier nur über verschachtelte Konstrukte möglich.
Letzte Änderung: 20.05.2008 12:56 Uhr

switch

In einigen Fällen ist die Verwendung der zuvor erläuterten Bedingung (Also dem if-elseif-else Statement) etwas umständlich zu handhaben. Beispielsweise wenn immer dieselbe Funktion oder Variable auf mehrere unterschiedliche Werte untersucht werden soll. Vor allem wenn Funktionswerte geprüft werden sollen kann es hier ohne zwischenspeichern des Rückgabewertes der Funktion zu erheblichen Performanceproblemen kommen. Hier bietet sich die Fallunterscheidung an.

Allgemeine Syntax

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
switch (<wert>) {
   case <ausdruck1>:
      //...
      break;
   case <ausdruck2>:
      //...
      break;
   //...
   default:
      //...
}
wobei <wert> die zu testende Variable oder Funktion darstellt und <ausdruck...> beliebige Werte oder einen bool'sche Ausdrücke, darstellen.

Schlüsselwörter

switch: Leitet die Fallunterscheidung ein. Mit Hilfe dieses Schlüsselwortes wird der zu prüfende Wert festgelegt.

case: Leitet einen konkreten Fall ein, für den der Codeausschnitt bis zum nächsten break oder return innerhalb der Fallunterscheidung ausgeführt werden soll.

default: Leitet den allgemeinen Fall ein. Dieser Fall erfordert keinen zu prüfenden Ausdruck

Beispiel: Zuweisung einer Variablen in bestimmten Fällen
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$a = rand(0,10); // Zahl zwischen 0 und 10 erzeugen
 
switch ($a) {
   case 1:
      $x = 'Eins';
      break;
   case 2:
      $x = 'Zwei';
      break;
   case 3:
   case 4:
      $x = 'Drei oder Vier';
      break;
   default:
      $x = 'Weder 1,2,3 noch 4';
}
Letzte Änderung: 20.05.2008 13:00 Uhr

while

Bei der while-Schleife handelt es sich um eine Kontrollstruktur um ein Code-Segment so oft auszuführen bis eine bestimmte Bedingung nicht mehr erfüllt ist. Die Bedingung ist wieder ein bool'scher Ausdruck.
Generell unterscheidet man zwischen kopf- und fußgesteuerten Schleifen


Kopfgesteuerte Schleife

Bei der kopfgesteuerten Schleife wird zu Beginn eines Schleifendurchlaufs die Bedingung geprüft. Die Schleife wird nicht durchlaufen, wenn bereits vor dem ersten Durchlauf die Bedingung nicht erfüllt ist.

Beispiel: Nachahmung einer Zählschleife mittels kopfgesteuertem while-Konstrukt
PHP:
1
2
3
4
5
<?php
$x = 0;
while ($x < 10) {
    $x = $x+1;
}

Fußgesteuerte Schleife

Bei einer fußgesteuerten Schleife wird zunächst der Code-Block ausgeführt und anschließend die Bedingung getestet. Die fußgesteuerte Schleife wird also mindestens ein Mal durchlaufen.

Beispiel: Nachahmung einer Zählschleife mittels fußgesteuertem while-Konstrukt
PHP:
1
2
3
4
5
<?php
$x = 0;
do {
   $x = $x+1;
} while($x < 10);

Alternative Schreibweise

PHP:
1
2
3
4
<?php
while ($bedingung):
   // Codeblock
endwhile;

Schlüsselwörter

do: Leitet eine fußgesteuerte Schleife ein. Diesem Schlüsselwort folgt zunächst der Schleifenrumpf und dann das Schlüsselwort while

while: Leitet eine Kopfgesteuerte Schleife ein, wenn das Schlüsselwort vor dem Schleifenrumpf steht. Nach dem Schleifenrumpf markiert das Schlüsselwort eine fußgesteuerte Schleife. Diesem Schlüsselwort folgt immer ein bool'scher Ausdruck in runden Klammern.
Letzte Änderung: 08.08.2008 17:10 Uhr

for

Die For-Schleife ist der While-Schleife sehr ähnlich. Der Unterschied ist, dass im Kopf der For-Schleife insgesamt drei Parameter übergeben werden müssen:

  • Der erste Parameter ist eine Funktion, die beim ersten Aufruf der Schleife ausgeführt wird. Gewöhnlich wird hier einer Zählvariable ein Startwert zugewiesen.
  • Der zweite Parameter ist ein bool'scher Ausdruck, der bei Erreichen von true zum Abbruch der Schleife führt.
  • Der dritte Parameter ist eine Funktion, die bei jedem Durchlauf der Schleife ausgeführt wird. Gewöhnlich wird hier die Zählvariable verändert.


Beispiel:
PHP:
1
2
3
4
<?php
for($a=1; $a<10;$a++) {
  echo "Hier kommen die Funktionen rein, die bei jedem Durchlauf ausgeführt werden sollen!";
}
Zeile 2:
Im Kopf der Schleife wird der Variable $a der Wert 1 zugewiesen.
Die Schleife wird solange ausgeführt, bis $a den Wert 10 erreicht.
Bei jedem Durchlauf wird die Variable $a um 1 erhöht.
Zeile 3-4:
Schleifenrumpf innerhalb der geschweiften Klammern. Hier stehen die Funktionen, die in der Schleife ausgeführt werden sollen.



Man kann die For-Schleife vorzeitig unterbrechen, indem man den Befehl break verwendet. $bedingung ist dabei wieder ein bool'scher Ausdruck:
PHP:
1
2
3
4
5
6
7
<?php
for($a=1; $a<10;$a++) {
   if ($bedingung {
      break;
   }
   // Schleifenrumpf
}
Eine elegantere Schreibweise ist ebenfalls in einigen Fällen möglich:
PHP:
1
2
3
4
<?php
for($a=1; $a<10||$bedingung;$a++) {
   // Schleifenrumpf
}
Letzte Änderung: 08.08.2008 17:21 Uhr

foreach

[Noch kein Text vorhanden]

Diskussion

nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung