Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Kontrollstrukturen
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet



 

switch-case-Anweisung




Eine Alternative zur if-elseif-Anweisung stellt die switch-Anweisung dar. Sie ermöglicht ebenfalls eine Mehrfachverzweigung, jedoch wirkt der Code wesentlich übersichtlicher und trägt zum besseren Verständnis bei.


Definition

SWITCH (BEDINGUNG/AUSDRUCK){
CASE WERT:
ANWEISUNG/EN;
CASE WERT:
ANWEISUNG/EN;
[DEFAULT WERT:]
[ANWEISUNG/EN;]
}




$meinLohn = 3000;

// Mehrfachverzweigung (switch-Anweisung)
// Ergebnis: "C"
switch ($meinLohn) {
    case 1000:
        // Anweisung A
        $ausgabe = "A";
        break;
    case 2000:
        // Anweisung B
        $ausgabe = "B";
        break;
    case 3000:
        // Anweisung C
        $ausgabe = "C";
        break;
    case 4000:
        // Anweisung D
        $ausgabe = "D";
        break;
    default:
        // Anweisung E
        $ausgabe = "E";
}

echo $ausgabe;



Es dreht sich auch hierbei wieder alles um den Ausdruck, der in der Regel eine Variable ist. Der default-Teil wird ausgeführt, wenn keiner der vorherigen Werte zutrifft. Dieser Teil der switch-Anweisung ist optional. Jeder Programmblock muss mit dem Kommando break abgeschlossen werden, damit die switch-Anweisung nicht unnötig weiter durchlaufen wird, wenn es zu einer Übereinstimmung mit einer der case-Werte kommt.

Hinweis: break bricht die Ausführung der aktuellen for, foreach while, do..while oder switch Anweisungs-Sequenz ab.



Erweiterte Syntax

Die Beschränkung des Bedingungstests auf Gleichheit mag als ernsthafte Behinderung erscheinen. Glücklicherweise kennt PHP eine erweiterte Notation der Syntax, die das Problem teilweise behebt. Dabei können mehrere Vergleiche hintereinander ausgeführt werden, die Operanden sind quasi Oder-verknüpft:



<?php
$meinLohn
= 3000;

// Mehrfachverzweigung (switch-Anweisung)
switch ($meinLohn) {
    case
1000: case 2000: case 3000:
        
// Anweisung A
        
$ausgabe = "Zwischen 1000 u. 3000";
        break;
    case
4000: case 5000:
        
// Anweisung D
        
$ausgabe = "Zwischen 4000 u. 5000";
        break;
    default:
        
// Anweisung E
        
$ausgabe = "Kein Angabe";
}
// Ausgabe - Zwischen 1000 u. 3000
echo $ausgabe;
?>




Alternative Syntax



Definition

SWITCH (BEDINGUNG/AUSDRUCK):
CASE WERT:
ANWEISUNG/EN;
DEFAULT:
ANWEISUNG/EN;
ENDSWITCH;


Hier ein Beispiel für die alternative Schreibweise einer switch-Anweisung.


<?
$meinLohn
= 3000;

// Mehrfachverzweigung (switch-Anweisung)
// Ergebnis: "C"
switch ($meinLohn):
    case
1000:
        
// Anweisung A
        
$ausgabe = "A";
        break;
    case
2000:
        
// Anweisung B
        
$ausgabe = "B";
        break;
    case
3000:
        
// Anweisung C
        
$ausgabe = "C";
        break;
    case
4000:
        
// Anweisung D
        
$ausgabe = "D";
        break;
    default:
        
// Anweisung E
        
$ausgabe = "E";
endswitch;

echo
$ausgabe;
?>





 


if-elseif-Anweisung
 






© 2001-2005 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de