Teil von  SELFPHP
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Expression Web 2 und PHP


SELFPHP Produktempfehlung
Microsoft Windows Server 2008
Seite Windows Server 2008
Seite

Microsoft SQL Server 2008
Seite SQL Server 2008
Seite

Microsoft Expression Web 3
Seite Microsoft Expression
Seite


Die if...else-Entscheidungsstruktur

Mit dem if-Anweisungsblock können Sie eine Bedingung prüfen. Die Praxis zeigt jedoch, dass eine Information bisweilen mehrfach ausgewertet werden muss.

Sie könnten das Programm in Listing 13.9 beispielsweise derart modifizieren, dass es nicht nur prüft, ob der Anwender bereits volljährig ist. Eine weitere Auswertung könnte ermitteln, ob der Anwender das Rentenalter erreicht hat. Dazu verwenden Sie die if...else-Entscheidungsstruktur, deren Syntax nachfolgend erläutert ist.

if (Bedingung1) {
Anweisungsblock1;
}
elseif (Bedingung2) {
Anweisungsblock2;
} ...
else {
Anweisungsblock3;
}

Der Computer prüft zunächst Bedingung1. Wenn diese Bedingung falsch ist, prüft der Rechner Bedingung2. Dies wird so lange fortgesetzt, bis eine Bedingung gefunden wird, die wahr ist. In diesem Fall wird der Anweisungsblock ausgeführt, der der Bedingung folgt. Nachdem diese Anweisungen ausgeführt wurden, wird der Programmcode mit der Zeile fortgesetzt, die der letzten geschlossenen geschweiften Klammer des if...else-Blocks folgt.

Sie können optional einen else-Anweisungsblock verwenden, dessen Anweisungen ausgeführt werden, wenn keine der von Ihnen definierten Bedingungen wahr ist. Betrachten Sie dazu das folgende Skript:

Listing 13.10 Auswerten mehrerer Bedingungen mit if...else

$alter = $_REQUEST["Alter"];
if ($alter >= 18 and $alter < 65) {
echo "\n";
echo "Sie sind volljährig!";
}
elseif ($alter >= 65) {
echo "\n";
echo "Sie befinden sich im Rentenalter!";
}
else {
echo "\n";
echo "Sie sind noch nicht volljährig!";
}

Hat der Besucher einen Wert eingegeben, der kleiner als 18 ist, erhält er die Mitteilung, dass er noch nicht volljährig ist. Ist der Wert größer oder gleich 18 und kleiner als 65, wird die Meldung angezeigt, dass der Benutzer volljährig ist. Hat der Anwender einen Wert eingegeben, der größer oder gleich 65 ist, erfährt er, dass er sich im Rentenalter befindet.

Der eigentliche Programmcode beginnt mit dem if...else-Block. Die erste Anweisung

if ($alter >= 18 and $alter < 65) {

enthält eine besondere Bedingung. Eigentlich besteht die Anweisung aus zwei Bedingungen, die mit einem so genannten logischen Operator verknüpft sind. Die erste Bedingung lautet $alter >= 18. Sie ist wahr, wenn der vom Anwender eingegebene Wert größer oder gleich 18 ist. Die zweite Bedingung lautet $alter < 65. Diese Bedingung ist erfüllt, wenn die Anwendereingabe kleiner als 65 ist.

Der logische Operator zwischen den beiden Bedingungen ist mit and bezeichnet, der englische Ausdruck für das Wort »und«. Dieser Operator verknüpft die beiden Bedingungen zu einer Bedingung. Die Bedingung ist somit wahr, wenn der eingegebene Wert größer oder gleich 18 und kleiner als 65 ist.

Die zweite Bedingung befindet sich in der Zeile

elseif ($alter >= 65) {

und prüft, ob der vom Anwender eingegebene Wert größer oder gleich 65 ist. Wenn die Eingabe größer oder gleich 18 und kleiner als 65 ist, werden somit die Anweisungen ausgeführt, die der Zeile

if ($alter >= 18 and $alter < 65) {

folgen. Ist der Wert größer oder gleich 65, werden die Anweisungen vom Computer ausgeführt, die der Zeile

elseif ($alter >= 65) {

folgen. Wenn keine der beiden Bedingungen wahr ist, wenn also das eingegebene Alter kleiner als 18 ist, werden die Anweisungen ausgeführt, die der Zeile

else

folgen.

Vergleichsoperatoren

Zur Formulierung einer Bedingung verwenden Sie so genannte Vergleichsoperatoren. In den vorherigen Beispielen sind dies die Operatoren >= (größer oder gleich) und < (kleiner als). Es gibt jedoch weitaus mehr Operatoren, um zwei Ausdrücke miteinander zu vergleichen. Dabei unterscheiden Sie zusätzlich zwischen Bedingungen, die zwei Zeichenfolgen oder zwei Zahlen miteinander vergleichen. Die Tabelle 13.1 nennt alle Vergleichsoperatoren, die Ihnen zur Verfügung stehen.

Tabelle 13.1 Vergleichsoperatoren

Bedingung Zahlen
Wert x ist gleich Wert y $x == $y
Wert x ist ungleich Wert y $x != $y
Wert x ist größer als Wert y $x > $y
Wert x ist größer oder gleich Wert y $x >= $y
Wert x ist kleiner als Wert y $x < $y
Wert x ist kleiner oder gleich Wert y $x <= $y

PROFITIPP: Das if...else-Problem
Beachten Sie bitte, dass das Schreiben von if...else-Entscheidungsstrukturen sehr umständlich werden kann, wenn mehrere else...if-Anweisungen verwendet werden. Das folgende Programm demonstriert ein häufig beobachtetes Problem, das auch vielen erfahrenen Programmierern gelegentlich unterläuft.

$alter = $_REQUEST["Alter"];
if ($alter >= 18) {
echo "\n";
echo "Sie sind volljährig!";
}
elseif ($alter >= 65) {
echo "\n";
echo "Sie befinden sich im Rentenalter!";
}
else {
echo "\n";
echo "Sie sind noch nicht volljährig!";
}
echo "\n";


Listing 13.11 if...else mit Problemen

Sie haben sicherlich sofort erkannt, dass dieses Programm weitgehend mit dem in Listing 13.10 aufgeführten Programm übereinstimmt. Lediglich die erste Bedingung unterscheidet sich von der des ersten Programms. Sie lautet jetzt nicht mehr $alter >= 18 and $alter < 65, sondern nur noch $alter >= 18.

Wenn das Skript gestartet wird und der Benutzer beispielsweise den Wert 20 eingibt, teilt ihm das Programm wie erwartet mit, dass er volljährig ist. Wenn jedoch der Wert 67 eingegeben wird, erfährt der Anwender nicht, dass er sich im Rentenalter befindet. Stattdessen wird wieder die erste Meldung angezeigt.

Was ist geschehen? Verfolgen wir dazu den Programmablauf. Nachdem das Alter eingegeben wurde, liest der Computer die erste Bedingung. Diese lautet jetzt Alter >= 18. Diese Bedingung ist wahr, wenn der Anwender 20 eingegeben hat. Sie ist jedoch ebenfalls wahr, wenn der Wert 67 eingegeben wurde.

Der Computer führt also in beiden Fällen den Programmcode aus, der dieser Bedingung folgt und springt anschließend in die Zeile, die der letzten geschlossenen geschweiften Klammer des if-Blocks folgt. Die zweite Bedingung Alter >= 65 wird somit nicht mehr von dem Computer überprüft. Aus diesem Grund verwendet das erste Programm zwei Bedingungen, die mit dem logischen UND-Operator verknüpft sind.

Wie Sie an diesem Beispiel erkennen, ist die korrekte Anwendung der if...else-Entscheidungsstruktur nicht immer einfach. Überlegen Sie deshalb genau, wie Sie Ihre Bedingungen formulieren, bevor Sie eine derartige Struktur programmieren. Verwenden Sie gegebenenfalls logische Operatoren, um mehrere Bedingungen zu einer einzigen zu verknüpfen.



Seite 14 von 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22



Copyright © 2010
Microsoft Deutschland GmbH
Alle Rechte vorbehalten.

 Microsoft Deutschland GmbH
 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


DM Solutions
Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt