Web.Development Seminar / weitere Kontrollstrukturen (z.B. Schleifen)
Einige passende Übungsaufgaben & Beispiele Nr. 7.
while Schleifen
Die einfachste Schleifenform in PHP ist die While Schleife. while (Bediengung)
Diese Schleife wird so lange ausgeführt bis die Bediengung nicht mehr erfüllt [false] ist. Ist die Bedignung beim Programmstart nicht erfühlt wird die Schleife ü+berhaupt nicht durchlaufen, ansonsten so lange bis die Bediengung nicht mehr erfüllt ist.
- Hint: Sollte der Browser 'merkwürdig' lange laden beim ausführen eines PHP Skriptes ist dies oft ein Zeichen auf eine Endlosschleife! Bei der die Bediengung niemals false wird.
Ein einfaches Beispiel:
<? # while Schleife
$zahl = 20; // Startwert Schleife 20
while ($zahl >= 10) // Führe die Schleife so lange aus bis Zahl >=10
{
$zahl = $zahl -2; // Ziehe von Zahl 2 ab...
print "Zahlenwert ".$zahl;
}
print "Schleifenende";
?>
|
do/while Schleifen
Im Gegensatz zur while Schleife führt eine do/while Schleife den Schleifenblock mindestens einmal aus.
Bei dieser Form wird die Bedengung erst am Ende geprüft. D.h. nach dem ersten Durchlaufen wird die Bedingung geprüft und dann entschieden ob die Schleife erneut durchlaufen soll.
Ein einfaches Beispiel:
<? # do/while Schleife
$zahl = 0; // Startwert Schleife 0
do
{
$zahl = $zahl -2; // Ziehe von Zahl 2 ab...
print "Zahlenwert ".$zahl;
}
while ($zahl >= 10); // Führe die Schleife so lange aus bis Zahl >=10
// Schleife läuft nur einmal durch!
print "Schleifenende";
?>
|
- Hint: Sollte der Browser 'merkwürdig' lange laden beim ausführen eines PHP Skriptes ist dies oft ein Zeichen auf eine Endlosschleife! Bei der die Bediengung niemals false wird.
for Schleifen
For Schleifen sind etwas komplexer als while Schleifen.
Eine for Schleife hat 3 Ausdrücke for (Ausdruck1; Ausdruck2;Ausdruck3)
- Der ertste Ausdruck wird beim Schleifenbegin ausgeführt (ungeprüft!)
- Der zweite Ausdruck wird zu Beginn des Schleifendurchgangs geprüft und muss zum Durchlaufen der Schleife erfüllt sein [TRUE]
- Der dritte Ausdruck wird am Ende des Schleifendurchlaufs ungeprüft ausgeführt
<? # for Schleife
for ($start = 0; $start <= 4; $start++) // Schleifenstartwert auf 0 setzen ;
{ // größer 4 prüfen ;
// nach dem ersten Durchlauf um 1 itterieren
print "Startwert: ".$start;
}
for ($start = 10; $start > 4; $start=$start-3) // Schleife läuft 6 mal durch
{
$start=$start+2; // beachten!
print "Startwert: ".$start;
}
?>
|
- Hint: Es müssen nicht alle Ausdrücke bei einer for Schleife angegeben werden. Im Extremfall ist syntaktisch auch for (;;) korrekt [Endlosschleife]. Der Schleifenablauf kann auch anders gesteuert werden. [s.u.]
Schleifen Sterungselemente break/continue
Um Schleifen abzubrechen bzw. erneut zu starten gibt es:
- break - Die Ausführung der aktuellen while, do..while, for, foreach, switch Schleife/Kontrollstruktur wird sofort abgebrochen.
- continue - Ein Abruch der Schleife wird durchgeführt und diese dann erneut durchlaufen.
einfache Beispiele:
<? # Schleifesteuerung
# break
for (;;)
{
print "Schleife";
break; // Schleifendurchlauf anhalten
}
# continue
for ($start=0;;$start++)
{
print "Schleifenzahl ".$start;
if ($start < 8)
{
continue; // Schleifendurchlauf erneut starten
}
break; // Schleifendurchlauf anhalten
}
?>
|
Eine passende Übungsaufgabe & Beispiele Nr. 7 .
- Hint: Über eine numerische angehängtes Argument bei einer break Anweisung können mehrere, geschachtelte Befehlssequenzen abgebrochen werden (z.B. Schleife / switch mit ... break 2;)!
Code auslagern und einbinden (include/require)
Dazu eine passende Übungsaufgabe & Beispiele Nr. 7
include / require
Mittels Include oder Require kann extern in Dateien vorliegender PHP Code eingebunden und ausgeführt werden.
Beide sind nahezu identisch und unterscheiden sich nur im Fhelerhandling.
Require beendet mit einem Fatal Error die Scriptasführung wenn die eingebundene Datei nicht vorhanden ist, include erzeugt statt dessen eine Warning.
D.h. soll ein Skript nur ausgeführt werden wenn eine Datei vorhanden ist und eingebunden werden kann dann muss require verwendet werden!.
- Hint: Die includierten Dateien müssen PHP Code mit Php Tacks umschliessen!
einfache Beispiele:
<? # include / require
globals.inc // fremde Datei
<?
$start = 4;
$end = 42;
?>
<?
# eigentliches Script
require("globals.inc");
include("header.inc");
print "Start: ".$start."End: ".$end;
?>
|
include_once / require_once
Im Unterschied zu include / require bindet include_once / require_once den externen Code nur einmal ein.
Damit lassen sich doppelte Funktions/Parameter o. Klasseneinbindungen vermeiden.
- Hint: Innerhalb von includierten Files ist es per return() die Ausführung der Datei abzubrechen und zum ausführenden Skript zurückzuspringen
Dazu eine passende Übungsaufgabe & Beispiele Nr. 7
<<-- zurück -- Startseite Seminar --
|